Visual Studio 2017:除 en-US 之外的默认语言
Visual Studio 2017: Default language other than en-US
这个问题已经存在很久了。我预计它会在 VS 2017 中修复,但事实并非如此。这是一种重现它的方法。
- 打开 VS2017(或 VS2015)并创建一个新的 UWP 项目。
- 在包清单 (Package.appxmanifest) 中将默认语言从
en-US
更改为 en
。
- 在程序集信息中,您可以将中性语言保留为
None
,或将其设置为 English
(这会将行 [assembly: NeutralResourcesLanguage("en")]
添加到 AssemblyInfo.cs)。
- 在解决方案资源管理器 select 'Assets' 文件夹中创建子文件夹
en
(右键单击 - 添加 - 新建文件夹 - 键入 en
)。将 .png 文件(例如 StoreLogo.png
)复制到新创建的子文件夹中。 (实际上我的真实应用程序支持多种语言,但一种语言足以说明问题。)
就是这样!构建项目,您将收到一条消息:
MakePRI : warning 0xdef00522: Resources found for language(s) 'en'
but no resources found for default language(s): 'en-US'.
Change the default language or qualify resources with the default language.
http://go.microsoft.com/fwlink/?LinkId=231899
遗憾的是,消息中引用的网站并未说明问题所在。
我注意到生成的 priconfig.xml 包含以下部分:
<index root="\" startIndexAt="obj\x86\Debug\resources.en-us.resfiles">
<default>
<qualifier name="Language" value="en-us" />
<qualifier name="Contrast" value="standard" />
<qualifier name="Scale" value="200" />
<qualifier name="HomeRegion" value="001" />
<qualifier name="TargetSize" value="256" />
<qualifier name="LayoutDirection" value="LTR" />
<qualifier name="DXFeatureLevel" value="DX9" />
<qualifier name="Configuration" value="" />
<qualifier name="AlternateForm" value="" />
<qualifier name="Platform" value="UAP" />
</default>
<indexer-config type="RESW" convertDotsToSlashes="true" />
<indexer-config type="RESJSON" />
<indexer-config type="RESFILES" qualifierDelimiter="." />
</index>
但是我不知道'en-us'从哪里来。
商店捆绑包已创建,AppxBundleManifest.xml 中没有 en-us
。 运行 语言不受支持的应用程序也可以,它使用英语 (en
)。该应用程序通过了 Microsoft store 的认证。
不过,我还是希望摆脱这条消息。有什么想法吗?
感谢您的反馈。这是 VS/MSBuild 中的一个已知问题。我们正在与相关团队就此问题进行同步。该警告来自 .NET Core Framework 二进制文件将 "en-US" 作为默认语言这一事实。
Still, I would prefer to get rid of this message. Any ideas?
暂时,唯一可能的解决方法是声明默认语言 "en-US"。但如您所知,此警告不会破坏您的开发进度,您可以忽略它并继续前进。 ;)
这个问题已经存在很久了。我预计它会在 VS 2017 中修复,但事实并非如此。这是一种重现它的方法。
- 打开 VS2017(或 VS2015)并创建一个新的 UWP 项目。
- 在包清单 (Package.appxmanifest) 中将默认语言从
en-US
更改为en
。 - 在程序集信息中,您可以将中性语言保留为
None
,或将其设置为English
(这会将行[assembly: NeutralResourcesLanguage("en")]
添加到 AssemblyInfo.cs)。 - 在解决方案资源管理器 select 'Assets' 文件夹中创建子文件夹
en
(右键单击 - 添加 - 新建文件夹 - 键入en
)。将 .png 文件(例如StoreLogo.png
)复制到新创建的子文件夹中。 (实际上我的真实应用程序支持多种语言,但一种语言足以说明问题。)
就是这样!构建项目,您将收到一条消息:
MakePRI : warning 0xdef00522: Resources found for language(s) 'en'
but no resources found for default language(s): 'en-US'.
Change the default language or qualify resources with the default language.
http://go.microsoft.com/fwlink/?LinkId=231899
遗憾的是,消息中引用的网站并未说明问题所在。
我注意到生成的 priconfig.xml 包含以下部分:
<index root="\" startIndexAt="obj\x86\Debug\resources.en-us.resfiles">
<default>
<qualifier name="Language" value="en-us" />
<qualifier name="Contrast" value="standard" />
<qualifier name="Scale" value="200" />
<qualifier name="HomeRegion" value="001" />
<qualifier name="TargetSize" value="256" />
<qualifier name="LayoutDirection" value="LTR" />
<qualifier name="DXFeatureLevel" value="DX9" />
<qualifier name="Configuration" value="" />
<qualifier name="AlternateForm" value="" />
<qualifier name="Platform" value="UAP" />
</default>
<indexer-config type="RESW" convertDotsToSlashes="true" />
<indexer-config type="RESJSON" />
<indexer-config type="RESFILES" qualifierDelimiter="." />
</index>
但是我不知道'en-us'从哪里来。
商店捆绑包已创建,AppxBundleManifest.xml 中没有 en-us
。 运行 语言不受支持的应用程序也可以,它使用英语 (en
)。该应用程序通过了 Microsoft store 的认证。
不过,我还是希望摆脱这条消息。有什么想法吗?
感谢您的反馈。这是 VS/MSBuild 中的一个已知问题。我们正在与相关团队就此问题进行同步。该警告来自 .NET Core Framework 二进制文件将 "en-US" 作为默认语言这一事实。
Still, I would prefer to get rid of this message. Any ideas?
暂时,唯一可能的解决方法是声明默认语言 "en-US"。但如您所知,此警告不会破坏您的开发进度,您可以忽略它并继续前进。 ;)