Use TextTransform para generar código automáticamente con T4 sin iniciar Visual Studio

Actualización de la página :
Fecha de creación de la página :

Entorno operativo

Estudio visual
  • Visual Studio 2022
Windows
  • Windows 11

Prerrequisitos

Estudio visual
  • Funciona incluso con una versión algo más antigua

precondición

Este consejo supone lo siguiente:

  • Visual Studio instalado en Windows

En este caso, utilizaremos una herramienta llamada "TextTransform (o TextTransformCore)", pero al tratarse de una herramienta incluida en Visual Studio, es necesario instalarla aunque no se inicie Visual Studio.

¿Cuál es la diferencia entre "TextTransform.exe" y "TextTransformCore.exe"?

"TextTransform.exe" es una herramienta temprana que ha existido desde el advenimiento de Entity Framework.

TextTransformCore.exe es una nueva herramienta basada en .NET 6.

No hay una diferencia funcional importante, por lo que no importa cuál uses.

Crear un archivo T4 (.tt)

No es diferente de lo que crea en Visual Studio, así que use un editor de texto para crearlo. Esta vez, usaremos el código que creamos previamente como Sr./Sra.

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>

<#
  List<string> types = new(){"Int", "Short", "Long", "Float", "Double", "Decimal"}; 
#>

public static class ParseExtensions
{
<# foreach (var type in types) { #>
<#   var typeLower = type.ToLower(); #>
  public static <#= typeLower #> Parse<#= type #>(this string self, <#= typeLower #> defaultValue)
  {
    return <#= typeLower #>.TryParse(self, out var val) ? val : defaultValue;
  }
<# } #>
}

En este caso, colocaremos este archivo en la siguiente ubicación. Puedes ejecutarlo en cualquier lugar, así que déjalo donde quieras.

  • C:\Temporal\Sample.tt

Generar código usando la herramienta de línea de comandos "TextTransform"

En Visual Studio, era fácil porque Visual Studio generaba código automáticamente usando "TextTransform", pero si no usa Visual Studio, tiene que generar código manualmente usando "TextTransform".

TextTransform es una herramienta de línea de comandos que se instala al instalar Visual Studio en la carpeta siguiente:

  • < drivePath>\Archivos de programa\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
  • < ruta de acceso>\Archivos de programa\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe

[Ejemplo]

  • C:\Archivos de programa\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe

Inicie un terminal o símbolo del sistema y use TextTransform para generar código.

Para Windows 11, inicie Terminal desde el menú Inicio. Para otros sistemas operativos, utilice el símbolo del sistema.

Para terminal, cambie al símbolo del sistema. No hay nada que no pueda hacer con PowerShell, pero la descripción cambia ligeramente.

cd En el comando, vaya a la carpeta donde colocó el archivo .tt e ingrese el comando de la siguiente manera: (Cambie la versión de la ruta de la carpeta según corresponda).

[Ejemplo de entrada]

  • "C:\Archivos de programa\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt

Si tiene éxito, el proceso continúa como si se hubiera hecho sin incidentes. Si realmente miras la carpeta, puedes ver que el código se genera automáticamente.

Los contenidos también están correctamente creados.

Quiero acortar la ruta de TextTransform al ejecutar un comando.

Si no desea escribir una ruta de acceso larga a su TextTransform cada vez que ejecute un comando, puede registrar esa ruta de acceso en una "variable de entorno". Si se trata de un símbolo del sistema de desarrollo que viene con Visual Studio, hará referencia a esa ruta de acceso de forma predeterminada, lo que facilita la escritura.

Si observa la carpeta de Visual Studio desde el menú Inicio, encontrará un símbolo del sistema de desarrollo y lo iniciará.

De la misma manera, al escribir un comando, puede omitir la ruta de acceso de TextTransform y ejecutarlo.

Por cierto, en el caso de Windows 11, es fácil abrirlo porque está integrado en el terminal.

Coloque comandos en un archivo .bat o .ps1 para que sean fáciles de ejecutar

El contenido a describir es el mismo que cuando se introduce un comando normal, por lo que se omite el contenido. Dependiendo de la configuración del sistema operativo, puede estar restringido para que no se pueda ejecutar incluso si hace doble clic en el archivo .bat o .ps1, por lo que en ese caso, configúrelo para que se pueda ejecutar.