我在一个目录中有很多 png 图像。如果更新,我已将其作为内容/复制添加到项目中。我可以毫无问题地从应用程序加载它们。
但是,该项目需要大量时间来编译。如果我对代码做一点改动,项目就会重新编译。这需要很多时间。
我尝试添加另一个项目,将文件添加到新项目中,但是我无法从应用程序访问文件。
有什么解决办法吗?
当然,当我将应用程序调试到 iPad 中时,上传+安装需要很多时间。这些文件永远不会改变,所以......有什么方法可以一次复制所有内容吗?
谢谢
我在一个目录中有很多 png 图像。如果更新,我已将其作为内容/复制添加到项目中。我可以毫无问题地从应用程序加载它们。
但是,该项目需要大量时间来编译。如果我对代码做一点改动,项目就会重新编译。这需要很多时间。
我尝试添加另一个项目,将文件添加到新项目中,但是我无法从应用程序访问文件。
有什么解决办法吗?
当然,当我将应用程序调试到 iPad 中时,上传+安装需要很多时间。这些文件永远不会改变,所以......有什么方法可以一次复制所有内容吗?
谢谢
我刚刚发现了一个技巧。当您从 MonoDevelop 环境上传和安装时,monotouch 似乎不会删除目录,所以:
这一切都改变了!!!在此之前,当我需要对我的代码进行小幅更改时,我需要等待大约 15 分钟才能构建和上传。现在只有1分钟!!!
<EmbeddedResource Include="Images\Folder\Filename.ext">
<LogicalName>LogicalNameForImage</LogicalName>
</EmbeddedResource>
4. 加载资源为
UIImage.FromResource(yourAssembly, "LogicalNameForImage");
嵌入式资源按需加载,而不是在程序集加载时加载。
在 MonoDevelop 的未来版本中(我的补丁没有及时发布到即将发布的 4.0 版本),这将不再是问题。
目前在 MonoDevelop 3.x 中发生的情况是,在构建项目时,它只会将已更改的图像复制到应用程序包中,但是,在构建之后,MonoDevelop 会调用与 Xcode 一起安装的脚本,该脚本会iphone-optimize
扫描整个应用程序目录并用于pngcrush
粉碎所有图像(它还将所有 plist 文件转换为二进制 plist)。如果您有很多图像,这就是导致构建时间如此缓慢的步骤。
就在 4.0 分支关闭以进行 QAing 之后,我编写了一个补丁来避免调用iphone-optimize
脚本的需要。相反,MonoDevelop 将做的是它只会直接调用已pngcrush
更改的图像,将正确的应用程序目录位置作为输出参数传递给,这样我们就可以避免额外的文件复制。pngcrush
根据我自己的测试,这极大地缩短了具有大量图像文件的项目的构建时间。
同时,您可以做的是备份iphone-optimize
脚本(应该位于下面的某个位置/Applications/Xcode.app
),然后修改它以不破坏图像文件。然后,一旦你完成了这些,去预粉碎你项目中的所有 png 文件。
(注意:当带有我的补丁的 MonoDevelop 最终发布时,它还可以选择为已经预先粉碎图像的开发人员禁用调用 pngcrush)。