Usare TextTransform per generare automaticamente codice con T4 senza avviare Visual Studio

Pagina aggiornata :
Data di creazione della pagina :

Ambiente operativo

Studio visivo
  • Studio visivo 2022
Finestre
  • finestre 11

Prerequisiti

Studio visivo
  • Funziona anche con una versione un po' più vecchia

precondizione

Questo suggerimento presuppone quanto segue:

  • Visual Studio installato in Windows

In questo caso, utilizzeremo uno strumento chiamato "TextTransform (o TextTransformCore)", ma trattandosi di uno strumento incluso in Visual Studio, è necessario installarlo anche se non si avvia Visual Studio.

Qual è la differenza tra "TextTransform.exe" e "TextTransformCore.exe"?

"TextTransform.exe" è uno strumento precoce che esiste dall'avvento del Entity Framework.

TextTransformCore.exe è un nuovo strumento basato su .NET 6.

Non ci sono grandi differenze funzionali, quindi non importa quale usi.

Creare un file T4 (.tt)

Non è diverso da ciò che si crea in Visual Studio, quindi usare un editor di testo per crearlo. Questa volta, utilizzeremo il codice che abbiamo creato in precedenza come Mr./Ms..

<#@ 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;
  }
<# } #>
}

In questo caso, inseriremo questo file nella seguente posizione. Puoi eseguirlo ovunque, quindi lascialo dove vuoi.

  • C:\Temporaneo\Sample.tt

Generare codice utilizzando lo strumento a riga di comando "TextTransform"

In Visual Studio è stato semplice perché Visual Studio ha generato automaticamente il codice utilizzando "TextTransform", ma se non si utilizza Visual Studio, è necessario generare manualmente il codice utilizzando "TextTransform".

TextTransform è uno strumento da riga di comando che viene installato quando si installa Visual Studio nella cartella seguente:

  • < drivePath>\Programmi\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
  • < DrivePath>\Programmi\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe

[Esempio]

  • C:\Programmi\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe

Avvia un terminale o un prompt dei comandi e usa TextTransform per generare codice.

Per Windows 11, avvia Terminale dal menu Start. Per altri sistemi operativi, utilizzare il prompt dei comandi.

Per il terminale, passare al prompt dei comandi. Non c'è niente che non puoi fare con PowerShell, ma la descrizione cambia leggermente.

cd Nel comando, passare alla cartella in cui è stato inserito il file .tt e immettere il comando come segue: (Si prega di modificare la versione del percorso della cartella in base alle esigenze.)

[Esempio di input]

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

In caso di esito positivo, il processo procede come se fosse stato eseguito senza incidenti. Se guardi effettivamente la cartella, puoi vedere che il codice è generato automaticamente.

Anche i contenuti sono stati creati correttamente.

Desidero abbreviare il percorso di TextTransform durante l'esecuzione di un comando.

Se non si desidera scrivere un percorso lungo per TextTransform ogni volta che si esegue un comando, è possibile registrare tale percorso in una "variabile di ambiente". Se si tratta di un prompt dei comandi di sviluppo fornito con Visual Studio, farà riferimento a tale percorso per impostazione predefinita, semplificando la scrittura.

Se si esamina la cartella Visual Studio dal menu Start, si troverà un prompt dei comandi di sviluppo e lo si avvierà.

Allo stesso modo, quando si scrive un comando, è possibile omettere il percorso di TextTransform ed eseguirlo.

A proposito, nel caso di Windows 11, è facile aprirlo perché è integrato nel terminale.

Inserire i comandi in un file .bat o ps1 per semplificarne l'esecuzione

Il contenuto da descrivere è lo stesso di quando si immette un comando normale, quindi il contenuto viene omesso. A seconda delle impostazioni del sistema operativo, potrebbe essere limitato in modo che non possa essere eseguito anche se si fa doppio clic sul file .bat o .ps1, quindi in tal caso, impostarlo in modo che possa essere eseguito.