1

我正在使用 Xamarin Studio。是否可以为自定义文件或图像文件设置默认构建操作?

我正在开发一个使用大量 PNG 图像的应用程序。BundleResource 默认为我导入到项目中的每个图像设置。我注意到当我使用Content而不是默认的BundleResource构建图像时,我的内存使用量减少了约 25mb(从 220 到约 193mb)。

“MonoDevelop 应该自动选择 BundleResource 构建操作,但您可以在每个文件的属性中手动检查或设置它。”

- http://docs.xamarin.com/guides/ios/platform_features/monodevelop_features

4

2 回答 2

5

我建议不要使用Content构建操作。构建操作是后来添加的BundleResource,并且功能更强大,但是它们之间的唯一区别是从项目中的文件位置到应用程序包中的文件位置的映射。Content仅保留构建操作是为了向后兼容。

如果您看到不同的内存使用情况,则肯定有其他原因。您是否尝试过比较您的 app bundle 的两个版本?

内容文件被复制到应用程序包中,其相对路径与项目中的相对路径匹配。BundleResource 文件的处理方式相同,只是如果它们位于项目的 Resource 目录中,则去掉此前缀。这个想法是,您可以根据 Apple API 的要求将内容复制到应用程序包的根目录中,而不会弄乱项目的根目录。

因此,例如,通过BundleResource构建操作,Resources\Foo\Bar.png您项目中的文件将被复制到Foo\Bar.png应用程序包中。而通过Content构建操作,它将被复制到Resources\Foo\Bar.png(尽管您的应用程序包中不允许有一个名为“Resources”的目录,因为它是 Apple 保留名称,因此您会收到错误消息)。

BundleResource还支持IPhoneResourcePrefix您只能通过手动编辑 csproj 文件来设置的项目属性,该文件允许您定义更多要以这种方式处理的目录,例如您可以有一个 Images 目录。这使您可以更好地控制资源的组织。您还可以LogicalName在任何项目上使用项目元数据BundleResource来完全覆盖其相对于捆绑包的位置。

于 2013-05-02T20:51:25.303 回答
0

似乎无法设置默认构建操作。但是,将文件添加到项目时,“添加文件”对话框提供了覆盖将导入文件以使用的构建操作的选项。

通过这种方式,您可以选择一堆 PNG 图像并从一开始就将它们与 Content 一起导入。

http://mjhutchinson.com/journal/2011/03/monodevelop_tips_build_actions

于 2013-05-01T14:39:26.073 回答