我有(很多)静态文件,我需要使用构建在传统.NET库之上的应用程序进行部署。其中包括几个XML和配置文件,以及10兆字节的只读数据库。
我见过的大多数论坛都表明,实现这一目标的最佳方法是在项目中引用所需的文件,并将它们设置为内容和“复制到输出目录”。
我有两个问题/问题在处理:
添加这些文件并将其设置为“内容”似乎不仅会复制文件,还会将它们嵌入到.dll中。换句话说,我有40 MB的文件和40 MB的dll(这个项目的唯一目标是导入这些文件,没有实质的代码)。 如何防止制作这么大的dll?
是否有其他方法可以将文件导入App捆绑包?我很乐意使用自定义构建命令,虽然我可以将文件复制到目标目录$ {AppDirectory}中,但这不会导致这些文件最终出现在应用程序包中。 这种方法可行吗?
提前感谢任何帮助。
答案 0 :(得分:1)
您需要包含主 .exe 项目中的文件。您可以通过在每个文件上使用MonoDevelop的构建操作到内容来实现此目的。它们应该被复制到.app而不包含在.dll(或.exe)中。
另一种选择(用于开发)是使用iTunes sharing将一次您的文件复制到您的设备。这使您在开发时可以更多更快的部署时间。
当然,您无法将此类构建提交到应用商店(除非文件不需要使应用程序正常工作,否则不太可能)。我所做的(对于我的近80MB只读数据库)是在#if DEBUG
内使用此 hack (从/ Documents加载)。发布版本从普通位置加载文件。
我没有自动化流程(仍在调试应用程序;-)但是应该可以编写脚本,因此从Debug和Release版本切换时不需要修改项目选项(对于每个文件)。