如果我在UWP设备上运行我的应用程序,我会在 Output
窗口中收到以下警告:
MakePRI:警告0xdef00522:为语言'en,de'找到的资源,但找不到默认语言的资源:'de-DE,en-US' . 使用默认语言更改默认语言或限定资源 . http://go.microsoft.com/fwlink/?LinkId=231899
不知道这是否相关,但我也知道
1> C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ AppxPackage \ Microsoft.AppXPackage.Targets(2459,5):警告:APPX4001:构建属性AppxBundlePlatforms未显式设置且基于计算目前正在建筑 . 使用“创建应用程序包”向导或编辑项目文件进行设置 .
This page说,我有语言特定的资源,我没有使用语言标签 . 我怎样才能知道这些资源是哪些资源?
我在 Assets
文件夹中有图像,但它们与语言无关 . 此外,我已将 Package.appxmanifest
中的默认语言设置为 de-DE
. 如果我从警告中搜索语言缩写,我只能在 Debug
输出文件夹中找到 priconfig.xml
和 AppxManifest.xml
.
我该怎么做才能删除此警告?
Edit:
如果我添加 AppResources.en-US.resx
文件(目前我在 Package.appxmanifest
中将 en-US
设置为默认语言),警告似乎消失了 . 另外,我有一个 AppResources.de.resx
和 AppResources.resx
的文件(应该是 en
) . 但为什么sample project不会丢失?
2 回答
只是为了扩展Nico Zhu - MSFT的答案,如果您使用.Net Standard,则没有assemblyInfo.cs文件,因为所有内容都存储在csproj文件中 . 因此,只需转到共享项目的属性,将Project中性语言更改为resx默认文件 . 或者您可以右键单击项目并编辑项目和下面的行 .
对我来说问题是,在从PCL转换为Net Standard后,突然UWP应用程序没有选择默认资源文件en-US . 我认识到因为我在assmeblyInfo.cs中有这个设置,因为它被删除了,它没有用 . 但不知何故,它适用于Android项目 .
如你所说,
AppResources.resx
是en . 您可以展开可移植类库(PCL)项目中的Properties节点,然后双击AssemblyInfo.cs文件 . 将以下行添加到文件中以将中性资源汇编语言设置为英语:这会通知资源管理器应用程序的默认文化,因此确保当应用程序在英语语言环境中运行时,将显示语言中性RESX文件(AppResources.resx)中定义的字符串 .
您已将
en-US
设置为Package.appxmanifest
中的默认语言,但是,没有与此对应的文件 . 所以它会发出警告 .示例项目的默认语言是
en-US
,并且没有与之对应的此类文件 . 它也向我发出同样的警告 . 如果将默认语言修改为en
,警告将消失 . 因为它在AssemblyInfo.cs
文件中将AppResources.resx
设置为en
.更多你可以参考AssemblyInfo,Supported languages .