ios - 如何将大量静态文件添加到 MonoTouch 包中?

标签 ios xamarin.ios monodevelop

我有(相当多的)静态文件需要与我的应用程序一起部署,该应用程序构建在遗留 .NET 库之上。其中包括几个 XML 和配置文件,以及一个 10 兆字节的只读数据库。

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

我有两个处理此问题的问题:

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

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

提前感谢任何帮助。

最佳答案

您需要包含主.exe 项目中的文件。您可以通过在每个文件上使用 MonoDevelop 的 Build Action to Content 来做到这一点。应将它们复制到 .app 而不要包含在 .dll(或 .exe)中。

另一种(用于开发)是使用 iTunes sharing将您的文件一次复制到您的设备。这可以让您在开发过程中大大更快地部署。

当然,您不能将此类构建提交到应用程序商店(除非这些文件不是使应用程序运行所必需的,这不太可能)。我所做的(对于我近 80MB 的只读数据库)是在 #if DEBUG 中使用这个hack(从/Documents 加载)。发布版本从正常 位置加载文件。

我没有自动化这个过程(仍在调试应用程序 ;-) 但应该可以编写脚本,因此从调试和发布构建切换时不需要修改项目选项(针对每个文件)。

关于ios - 如何将大量静态文件添加到 MonoTouch 包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184147/

相关文章:

ios - MonoTouch/MonoDevelop 或其他东西中的错误?

c# - Monodevelop 中的 MySQL ASP.NET MVC

ios - Voip 服务 (PKPush) 委托(delegate)方法未被调用

ios - `: class` 在协议(protocol)声明中究竟做了什么?

ios - 在 Xamarin 中按下按钮后关闭键盘

ios - 为什么Scrollview和子view大小有时不一致

ios - 将项目复制到新笔记本电脑后出现 Apple Mach-O 链接器错误

objective-c - 如何在 Core Plot 中输入 y 轴编号?

objective-c - 无法使 MonoTouch 绑定(bind)库工作

c# - .NET/Mono 应用程序的 ldd 的等效项