我的第一个建议是将图像的BuildAction 属性更改为BundleResource。
一旦你这样做了,就有多种方法可以实现你的目标:
第一个选项是将LogicalName 指定为您希望在已编译应用程序包中包含的任何名称。目前,除了EmbeddedResource 文件之外,无法设置Resource ID(LogicalName 属性的UI 名称)(我将立即修复该问题),但您可以像这样编辑*.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
icon@2x.png
在您的 *.csproj 文件中,编辑以下标签:
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
并将其替换为:
<IPhoneResourcePrefix>Resources;Resources\Icons</IPhoneResourcePrefix>
这将确保 icon.png 和 icon@2x.png 文件安装在 iOS 应用程序包的根目录中。