在我们的ASP.NET MVC项目中,我们有一个Strings.resx
文件和随附的自动生成的Strings.Designer.cs
文件。
跟踪源代码管理中的Strings.Designer.cs
文件会产生一堆丑陋的合并冲突,无论如何都会自动生成,因此我们决定将其删除(将其从源代码控制中删除并忽略该文件的本地副本)。
这很有效,除了在新的签出源文件中,Strings.Designer.cs文件不存在。从PublicResXFileCodeGenerator
balks生成文件的Strings.resx
,带有警告:
“自定义工具'PublicResXFileCodeGenerator'在处理文件'Views \ Setup \ App_LocalResources \ Strings.resx'时失败。”
结果,该文件中的所有字符串都会生成编译错误。这意味着您必须手动右键单击项目中的每个 Strings.resx
文件,然后选择“运行自定义工具”。
即使Strings.Designer.cs尚不存在,有没有办法让ResX代码生成器工具自动运行?
(我们已经尝试过ResGen,但它很挑剔 - 它拒绝使用正确的文件名和命名空间生成Strings文件。)
答案 0 :(得分:1)
您可以使用 ResGen.exe 从.resx显式重新生成.resources和.Designer.cs文件。只需在预建事件中抛出类似以下内容的命令:
ResGen.exe Strings.resx NameSpace.Strings.resources /publicClass /str:cs,"Your.Namespace",Strings,Strings.Designer.cs
...将生成一个Your.Namespace.Strings.resources文件和一个带有“Your.Namespace”命名空间中“Strings”类的Strings.Designer.cs文件。
(/ publicClass开关告诉ResGen生成公共成员,“cs”是C#语言选择。)
在此处阅读更多内容:http://msdn.microsoft.com/en-us/library/ccec7sz1(VS.80).aspx