2012-11-01 45 views
1

我有(相当多)静态文件,我需要使用构建在传统.NET库上的应用程序进行部署。这些包括几个XML和配置文件,以及十几兆字节的只读数据库。如何将大量的静态文件添加到MonoTouch包中?

我见过的大多数论坛都表示,实现这一目标的最佳方法是引用项目中所需的文件,并将它们设置为内容和“复制到输出目录”。

我有两个问题/问题处理这个:

  1. 添加这些文件,将它们设置为“内容”,似乎不仅复制文件结束,但将它们嵌入到.dll文件,以及。换句话说,我有40 MB的文件和一个40MB的dll(这个项目的唯一目标是导入这些文件,没有实质性的代码)。 如何防止这个非常大的dll被制作?

  2. 是否有其他方法可以将文件导入应用程序包?我很想使用自定义构建命令,虽然我可以将文件复制到目标目录$ {AppDirectory},但这不会导致这些文件结束于应用程序包中。 这种方法可行吗?

任何帮助预先感谢。

回答

1

您需要包含主文件.exe项目。您可以通过在每个文件上使用MonoDevelop的构建动作内容执行此操作。它们应该被复制到.app,而不被包含在.dll(或.exe)中。

替代方案(开发)是使用iTunes sharing一次您的文件复制到您的设备。这可以让你在开发时更快地部署时间。

当然,您不能将这样的构建提交给应用商店(除非不需要这些文件来使应用程序工作,不太可能)。我所做的(对于我的近80MB只读数据库)是在#if DEBUG内使用这个破解(从/ Documents加载)。版本构建从正常的位置加载文件。

我还没有自动化进程(仍在调试应用程序;-),但应该可以编写脚本,以便从Debug和Release版本切换时不需要修改项目选项(对于每个文件)。

+0

文件是主要可执行项目的一部分的必要性吗?为什么他们不能成为图书馆项目的一部分?理想情况下,我们将拥有该库使用的许多目标可执行文件。由于我不能将它们粘贴到某个子文件夹中,并仍然保持库期望的适当文件层次结构,因此在使用> 50个只读xml(和其他配置)文件运行所需的文件库时会添加额外的痛苦。 –

+0

在MonoDevelop 3.1中不需要(假定库项目是MonoTouch库项目) – jstedfast

相关问题