MSBuild AssignCulture任务为伪文化分配空文化(qps-ploc,qps-plocm)

时间:2011-11-29 09:40:21

标签: resx cultureinfo msbuild-task pseudolocalization

我的项目中有很多本地化的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的预期行为还是我使用它错了?

2 个答案:

答案 0 :(得分:1)

不确定发生了什么,但突然间一切都开始起作用了。也许某种程度上与系统重启有关。

答案 1 :(得分:0)

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

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