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

时间:2017-03-13 23:34:44

标签: visual-studio-2015 uwp visual-studio-2017

这个问题已存在很长一段时间了。我预计它将在VS 2017中修复,但它不是。这是一种重现它的方法。

  1. 打开VS2017(或VS2015)并创建一个新的UWP项目。
  2. 在Package Manifest(Package.appxmanifest)中,将默认语言从en-US更改为en
  3. 在大会信息中,您可以将中性语言保留为None,也可以将其设置为English(这会向AssemblyInfo.cs添加行[assembly: NeutralResourcesLanguage("en")])。
  4. 在解决方案资源管理器中,选择资产'文件夹和创建子文件夹en(右键单击 - 添加 - 新建文件夹 - 键入en)。将.png文件(例如StoreLogo.png)复制到新创建的子文件夹。 (实际上我的真实应用程序支持多种语言,但只有一种语言可以证明这个问题。)
  5. 那就是它!构建项目,您将收到一条消息:

    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>
    

    但是我不知道&#39; en-us&#39;来自。

    在AppxBundleManifest.xml中创建了Store捆绑包,但没有en-us。使用不支持的语言运行应用程序也可以,它使用英语(en)。该应用程序通过Microsoft商店认证。

    不过,我宁愿摆脱这个消息。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

感谢您的反馈。这是VS / MSBuild中的已知问题。我们正在就此问题与相关团队进行同步。该警告来自.NET Core Framework二进制文件具有&#34; en-US&#34;作为默认语言。

  

不过,我宁愿摆脱这个消息。有什么想法吗?

暂时,唯一可行的解​​决方法是声明默认语言&#34; en-US&#34;。但正如你所知,这个警告不会打破你的开发进度,你可以忽略它并继续前进。 ;)