示例消息
error XA1041: The MSBuild property 'MonoAndroidAssetPrefix' has an invalid value of 'c:\Foo\Assets'. The value is expected to be a directory path representing the relative location of your Assets or Resources.
error XA1041: The MSBuild property 'MonoAndroidResourcePrefix' has an invalid value of 'c:\Foo\Resources'. The value is expected to be a directory path representing the relative location of your Assets or Resources.
問题
问题是,MonoAndroidAssetPrefix和MonoAndroidResourcePrefix都需要是相对目录路径。 在打包应用时,此信息用于“去除”资产或资源的根目录信息。
由于属性包含完整路径,因此引发此错误。
例如,请考虑以下结构:
Foo.csproj
MyAssets/
Foo.txt
Subfolder/
Bar.txt
MainActivity.cs
在最终步骤.apk,我们期望文件Foo.txt和Bar.txt被放置在assets文件夹中。 为了正确执行此操作,生成系统需要知道资产所在的文件夹的名称。 默认情况下,这是“资产”,但也支持其他文件夹名称。
在上面的示例中,我们期望用户将 MonoAndroidAssetPrefix 设置为 "MyAssets" 的值。 这将确保在打包过程中删除“Foo.txt”等路径的“MyAssets”部分。 如果 MonoAndroidAssetPrefix 设置为 /Users/xxx/Foo/MyAssets 或 c:\Users\xxx\Foo\MyAssets 会看到此错误消息。
解决方案
解决方法是对MonoAndroidAssetPrefix或MonoAndroidResourcePrefix的值不要使用完整路径。 它们应该是与存储资产的文件夹路径匹配的相对目录路径。