【问题标题】:No default or neutral resource given for 'resource'没有为“资源”提供默认或中性资源
【发布时间】:2016-02-18 20:46:12
【问题描述】:

我正在构建一个支持两种语言(en 和 de)的 UWP 应用。我创建了Resource.resw 文件和testfile.xml,这基本上是我的应用程序的数据源。如果我直接从 Visual Studio(DEBUGRELEASE 模式)运行应用程序,它工作正常,但是一旦我从商店安装它或通过 WinAppDeployCmd.exe 将其侧载到设备,它不会从 @987654330 加载资源@

这是我在 Strings 目录中的文件结构:

我有指向Resources.resw 文件中指定的测试文件的链接,如下所示:

应用启动后,我使用ResourceLoader 检索Testfile 键的值以加载正确的(en 或 de)文件。

var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
var value = loader.GetString("Testfile");
var testfile = Path.Combine(Package.Current.InstalledLocation.Path + "/Strings/", value);

在构建过程中,这些警告会显示在输出窗口中

MakePRI : warning 0xdef01051: No default or neutral resource given for 'Files/Project/Strings/testfile_de.xml'. The application may throw an exception for certain user configurations when retrieving the resources.
MakePRI : warning 0xdef00522: Resources found for language(s) 'en,de' but no resources found for default language(s): 'en-US'. Change the default language or qualify resources with the default language.

您知道为什么通过商店安装或旁加载应用时资源没有加载吗?

【问题讨论】:

  • 将您的文件夹更改为 en-US 而不是 en,因为它似乎认为这是默认设置

标签: c# wpf xaml localization win-universal-app


【解决方案1】:

为解决方案中的每个 .csproj 设置 <DefaultLanguage>en</DefaultLanguage>

【讨论】:

  • 不是每个项目,只有那些有字符串资源的项目。
【解决方案2】:

为您的应用打开包清单,默认设置为 en-US。 将其更改为 en

【讨论】:

  • 感谢您的回复 - 我已经在 package.appxmanifest 中将 en 设置为默认语言。
  • 我也有同样的问题。这并没有改变任何东西。
【解决方案3】:

据我所知,此警告:“没有给出默认或中性资源....”是因为 VS 对文件或目录名称是否指代语言感到困惑。我对两个相同的程序束手无策,其中一个我可以在 MS Store 上发布,另一个被报告为崩溃。这两个程序在我的计算机上运行良好,一台运行 Windows 11 的戴尔 XPS 13。但是一个在发布时给出了这个错误,而另一个没有。这两个程序的唯一区别是它们访问的文件。在没有收到警告的程序中,文件名以“TP-”开头,而在发出警告的程序中,文件名以“SM-”开头。当我将文件名从 SM- 更改为 Sxxxxx- 时,警告消失了!我认为 SM 是索马里人的缩写或其他东西。尝试这种方式,而不是尝试设置语言等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-24
    • 2013-11-29
    • 2015-03-04
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多