Visual Studio 2017:除 en-US 之外的默认语言

Visual Studio 2017: Default language other than en-US

这个问题已经存在很久了。我预计它会在 VS 2017 中修复,但事实并非如此。这是一种重现它的方法。

  1. 打开 VS2017(或 VS2015)并创建一个新的 UWP 项目。
  2. 在包清单 (Package.appxmanifest) 中将默认语言从 en-US 更改为 en
  3. 在程序集信息中,您可以将中性语言保留为 None,或将其设置为 English(这会将行 [assembly: NeutralResourcesLanguage("en")] 添加到 AssemblyInfo.cs)。
  4. 在解决方案资源管理器 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"。但如您所知,此警告不会破坏您的开发进度,您可以忽略它并继续前进。 ;)