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?
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?
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.
El segundo enlace ahora está muerto. – Amy
Segundo enlace señalado a la página correspondiente en archive.org. HTH –
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();
No asuma que C: \ existe. Especialmente, no asuma que TextTemplating está instalado. – SLaks
¿Estás tratando de automatizar T4 desde C# –
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 ...). –