2009-10-23 23 views
14

Estoy escribiendo software que produce código C#. Sobre todo estoy usando StringTemplate y StringBuilder.¿Puedo usar T4 programáticamente desde C#?

¿Hay alguna forma de utilizar las plantillas T4 directamente desde mi código?

+0

¿Estás tratando de automatizar T4 desde C# –

+0

Exactamente. Tengo la aplicación WinForms, en la que el usuario crea el servicio y luego la aplicación necesita generar el código C# (c, java ...). –

Respuesta

12

Oleg Sych describe cómo hacerlo aquí: Understanding T4: Preprocessed Text Templates. Tenga en cuenta que parece que necesitará Visual Studio 2010 para generar una Plantilla de texto preprocesada, pero podrá alojar la Plantilla de texto preprocesada donde lo desee, incluso dentro de su aplicación WinForms.

+0

El segundo enlace ahora está muerto. – Amy

+0

Segundo enlace señalado a la página correspondiente en archive.org. HTH –

5

Una forma sencilla de hacer esto:

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 

proc.EnableRaisingEvents = false; 

// Set text transform program (this could change according to the Windows version) 
proc.StartInfo.FileName = "C:\\Program Files (x86)\\Common Files\\microsoft shared\\TextTemplating\\10.0\\TextTransform.exe"; 

// Specify T4 template file 
proc.StartInfo.Arguments = "C:\template.tt"; 

proc.Start(); 
+9

No asuma que C: \ existe. Especialmente, no asuma que TextTemplating está instalado. – SLaks

Cuestiones relacionadas