2010-09-16 4 views
11

Ich erstelle/aktualisiere Resx-Dateien in TFS mit ResXResourceWriter/ResXResourceReader, die die .Designer.cs-Datei nicht generiert. Ich habe gesehen, dass Resgen die .Designer.cs erstellt. Wie kann ich das programmatisch aufrufen, um die .Designer.cs in einem bestimmten TFS-Dateipfad zu generieren? Ist es so?Programmgesteuertes Generieren von Designer.cs für ResX-Datei (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); 

Antwort

16

Ich fand heraus, wie Sie die .Designer.cs-Datei programmgesteuert generieren.

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

Also, gelöst? Ich wollte Ihnen nur diesen MSDN Link geben: http://msdn.microsoft.com/en-us/library/gg418542.aspx;) –

+0

So nützlich, Danke Körper –

Verwandte Themen