我们使用 resx 文件进行全球化,并使用数据库查找我们的 CS 人员可以配置的内容(例如选项卡名称,可能因产品而异),因此在设计时是未知的。
我创建了一个自定义工具,可以读取 resx 文件并智能地将键/值对转储到关系数据库中(匹配值,这样我们就不会出现重复项)。
这对我们的业务有很大帮助 - 我们不必发送每个 resx 进行翻译(并为共享单词的重复翻译付费),而且我们的所有翻译(在数据库中)都有一个“黄金标准”。
我创建的工具还读取数据库,获取键/值对和每个值的翻译,并为每个 resx 文件(以及文本文件的每种语言的翻译)创建文本文件,并自动运行 resgen.exe(一个命令) Visual Studio 附带的 -line 工具,用于从生成的文本文件编译 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 文件的工具。有什么办法可以阻止这个警告吗?