2010-09-16 87 views
11

我使用不会生成.Designer.cs文件的ResXResourceWriter/ResXResourceReader在TFS中创建/更新resx文件。我看到Resgen创建了.Designer.cs。我怎样才能以编程方式调用,以在某个TFS文件路径中生成.Designer.cs?是这样的吗?以编程方式为resx文件生成Designer.cs(ResXResourceWriter/ResXResourceReader)

ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Program Files\Microsoft.NET\SDK\v2.0 64bit\Bin\ResGen.exe"); 
       startInfo.WindowStyle = ProcessWindowStyle.Minimized; 
       startInfo.Arguments = "ResourceName.resx /publicClass /str:cs, Namespace, ResourceName, ResourceName.Designer.cs"; 
       Process.Start(startInfo); 

回答

16

我发现了如何以编程方式生成.Designer.cs文件。

string[] unmatchedElements; 
var codeProvider = new Microsoft.CSharp.CSharpCodeProvider(); 
System.CodeDom.CodeCompileUnit code = 
    System.Resources.Tools.StronglyTypedResourceBuilder.Create(
     "MyClass.resx", "MyClass", "my.namespace", codeProvider, 
     true, out unmatchedElements); // Needs System.Design.dll 

using(StreamWriter writer = new StreamWriter("MyClass.Designer.cs", false, 
    System.Text.Encoding.UTF8)) 
{ 
    codeProvider.GenerateCodeFromCompileUnit(code, writer, 
     new System.CodeDom.Compiler.CodeGeneratorOptions()); 
} 

// Returns false if at least one ppty couldn't be generated. 
return unmatchedElements.Length == 0; 
+0

那么,解决?我只是想给你,MSDN链接:http://msdn.microsoft.com/en-us/library/gg418542.aspx;) – 2011-01-22 20:12:52

+0

如此有用,谢谢身体 – 2016-04-21 08:17:17