我的第一个建议是将图片的BuildAction
属性更改为BundleResource
。
一旦你这样做,也有实现目标的多种方式:
第一个选项是指定一个LogicalName
是你想要的名称是编译的应用程序包的里面什么。目前没有办法设置Resource ID
(UI名称为LogicalName财产)超过EmbeddedResource
文件以外的任何其他(我会在固定的工作,暂时),但你可以编辑* .csproj的,像这样:
<BundleResource Include="Icons\icon.png">
<LogicalName>icon.png</LogicalName>
</BundleResource>
通常,Icons\icon.png
文件将作为Icons/icon.png
复制到iOS应用程序包中,但是,LogicalName属性将覆盖相对路径名。在这种情况下,它将被复制为简单的icon.png
。
再举一个例子,你也可以这样做:
<BundleResource Include="Icons\iOS\icon.png">
<LogicalName>AppIcon.png</LogicalName>
</BundleResource>
这将Icons\iOS\icon.png
文件复制到iOS应用程序包的根,也是其重命名为AppIcon.png
。
第二种选择是将您的图像文件简单地移动到Resources
文件夹中。 Resources文件夹是一个特殊的目录,当拷贝到iOS应用程序包时,它将从默认路径名称中除去。换句话说,Resources\icon.png
将作为icon.png
而不是Resources\icon.png
复制到iOS应用程序包的根目录中,就像正常项目目录中的情况一样。
第三个选项是简单地注册自己的其他“资源”目录(并且它们可以存在于其他目录中,包括默认资源目录)。
例如,你可以有结构在您的项目:
Resources/
Icons/
icon.png
[email protected]
而在你的* .csproj的文件,编辑以下标签:
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
,取而代之的是:
<IPhoneResourcePrefix>Resources;Resources\Icons</IPhoneResourcePrefix>
这将确保icon.png和[email protected]文件安装在iOS应用程序包的根目录中。
FWIW,Xcode的“文件夹”不是真正的文件夹,它们只是文件分组,并不反映磁盘上的文件结构。 Xamarin Studio不支持这种虚拟文件分组的概念,因此使用子文件夹并不像您期望的那样工作。但是,在Xcode中使用真实文件夹的工作方式与Xamarin Studio中的文件夹相同。 – jstedfast