MSBuild AssignCulture任务将空区域性分配给伪区域性(qps-ploc, qps-plocm)



我有一些本地化的RESX文件在我的项目:

    Messages.resx
    Messages.de.resx
    Messages.qps-ploc.resx

最后一个是用于测试目的的伪本地化文本资源。我希望它被编译成卫星程序集(即项目/qps-ploc/项目.资源.dll)作为本地化的其余部分。但是由于某些原因,AssignCulture任务将空区域性分配给这个资源,并且它没有作为结果进行编译。

MSBuild日志片段:

    Task "AssignCulture"
      Culture of "de" was assigned to file "ResourcesMessages.de.resx".
      Culture of "" was assigned to file "ResourcesMessages.resx".
      Culture of "" was assigned to file "ResourcesMessages.qps-ploc.resx".
    Done executing task "AssignCulture".

伪本地化区域性已在注册表中启用,如下所述new CultureInfo("qps-ploc")返回正确的伪区域性

这是一个预期的行为从AssignCulture或只是我使用错误?

不知道发生了什么,但突然一切都开始工作了。可能与系统重启有关

我有同样的问题,它也在重新启动后自行解决。我认为这是因为AssignCulture任务必须检查资源文件中使用的文化,如果它不是标准的文化,或者在Windows全球化文件夹中有.nlp文件的自定义文化,则在编译期间分配失败,并且没有创建资源文件。

在我的情况下,我刚刚创建了一个自定义文化,但我猜Visual Studio不知道它,因为它一定缓存了上次系统重启时发现的资源文件。重新启动PC必须已经更新了缓存的资源文件(包括自定义的),然后AssignCulture任务能够成功匹配资源,并且资源文件被创建。

相关内容

最新更新