我的项目中有很多本地化的RESX文件:
Messages.resx
Messages.de.resx
Messages.qps-ploc.resx
最后一个是用于测试目的的伪本地化文本资源。我希望将其编译为附属程序集(即project / qps-ploc / project.resources.dll)作为其余的本地化。但由于某些原因,AssignCulture任务正在为此资源分配空文化,并且它不会被编译为结果。
来自MSBuild日志的片段:
Task "AssignCulture"
Culture of "de" was assigned to file "Resources\Messages.de.resx".
Culture of "" was assigned to file "Resources\Messages.resx".
Culture of "" was assigned to file "Resources\Messages.qps-ploc.resx".
Done executing task "AssignCulture".
已按照here所述在注册表中启用了伪本地化文化
并且new CultureInfo("qps-ploc")
返回正确的伪文化。
这是来自AssignCulture的预期行为还是我使用它错了?
答案 0 :(得分:1)
不确定发生了什么,但突然间一切都开始起作用了。也许某种程度上与系统重启有关。
答案 1 :(得分:0)
我遇到了同样的问题,重启后也解决了问题。我认为这是因为AssignCulture任务必须检查资源文件中使用的文化,如果它不是标准文件或在Windows \ Globalization文件夹中具有.nlp文件的自定义文化,编译期间分配失败,并且没有创建资源文件。
在我的情况下,我刚刚创建了一个自定义文化,但我猜Visual Studio并不知道它,因为它必须缓存在之前系统重启时找到的资源文件。重新启动PC必须更新缓存的资源文件(包括自定义的文件),然后AssignCulture任务才能成功匹配资源并创建资源文件。