2010-09-16 8 views
11

Estoy creando/actualizando archivos resx en TFS usando ResXResourceWriter/ResXResourceReader que no genera el archivo .Designer.cs. Vi que Resgen crea el .Designer.cs. ¿Cómo puedo llamarlo programáticamente para generar .Designer.cs en una determinada ruta de archivo TFS? ¿Es algo como esto?Generar programáticamente Designer.cs para el archivo 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); 

Respuesta

16

Descubrí cómo generar programáticamente el archivo .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

Entonces, ¿resuelto? Solo iba a darle ese enlace de MSDN: http://msdn.microsoft.com/en-us/library/gg418542.aspx;) –

+0

Tan útil, Gracias cuerpo –

Cuestiones relacionadas