【发布时间】:2011-12-21 07:48:23
【问题描述】:
我们使用 resx 文件进行全球化,并使用数据库查找可以由我们的 CS 人员配置的内容(例如选项卡名称,可能因产品而异),因此在设计时不知道。
我创建了一个自定义工具,它可以读取 resx 文件并智能地将键/值对转储到关系数据库中(匹配值,因此我们没有重复项)。
这对我们的业务有很大帮助 - 我们不必发送每个 resx 进行翻译(并为共享单词的重复翻译付费),我们的所有翻译(在数据库中)都有一个“黄金标准” )。
我创建的工具还读取数据库,获取键/值对和每个值的翻译,并为每个 resx 文件(以及文本文件的每种语言的翻译)创建文本文件,并自动运行 resgen.exe ,Visual Studio 附带的命令行工具,用于从生成的文本文件编译 resx 文件。
我没有任何源代码控制集成,所以我们必须在使用该工具时手动签出 resx 文件并手动签入生成的文件,但这并不是什么大问题。
我的问题是这种方法对于我们的新 MVC 项目失败:MVC 项目要求 resx 文件是访问修饰符为“public”的嵌入式资源。
到目前为止,我们一直在手动修复此问题,这会引入人为错误的可能性并增加大量工作。
有没有办法让 resgen.exe 创建嵌入和公共的资源文件?如果没有,是否有另一种方法可以创建 resx 文件?
更新,附加问题: 我们使用此方法生成的 resx 文件也会引发警告:
A custom tool 'PublicResXFileCodeGenerator' is associated with file '(resxname)',
but the output of the custom tool was not found in the project.
You may try re-running the custom tool by right-clicking on the file in the
Solution Explorer and choosing Run Custom Tool.
提到的工具是我们最初用来创建 resx 文件的工具。有什么办法可以阻止这个警告吗?
【问题讨论】:
标签: c# model-view-controller globalization embedded-resource resx