1

我的项目中有许多本地化的 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".

如此处所述,已在注册表中启用伪本地化文化, 返回new CultureInfo("qps-ploc")正确的伪文化。

这是AssignCulture 的预期行为还是只是我用错了?

4

2 回答 2

1

不知道发生了什么,但突然一切都开始起作用了。也许与系统重启有关。

于 2011-11-30T02:12:40.980 回答
0

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

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

于 2014-11-12T17:32:09.960 回答