2010-09-16 8 views
11

Sto creando/aggiornamento resx in TFS utilizzando ResXResourceWriter/ResXResourceReader che doesnt generare il file .Designer.cs. Ho visto che Resgen crea il .Designer.cs. Come posso chiamarlo programmaticamente per generare il .Designer.cs in un determinato percorso del file TFS? È qualcosa di simile?livello di programmazione generare Designer.cs per il file RESX (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); 

risposta

16

Ho scoperto come generare il file .Designer.cs al livello di programmazione.

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

Quindi, risolto? Stavo per darti il ​​link MSDN: http://msdn.microsoft.com/en-us/library/gg418542.aspx;) –

+0

Così utile, grazie corpo –

Problemi correlati