不跟踪C#设计器生成的代码:拒绝使用干净的结帐生成

时间:2009-06-24 15:58:33

标签: asp.net asp.net-mvc

在我们的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文件。)

1 个答案:

答案 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