Utilitzeu TextTransform per generar codi automàticament amb T4 sense iniciar Visual Studio
Entorn operatiu
- Visual Studio
-
- Visual Studio 2022
- Windows
-
- Windows 11
Prerequisits
- Visual Studio
-
- Funciona fins i tot amb una versió una mica més antiga
Precondició
Aquest consell suposa el següent:
- Visual Studio instal·lat al Windows
En aquest cas, utilitzarem una eina anomenada "TextTransform (o TextTransformCore)", però com que és una eina inclosa a Visual Studio, cal instal·lar-la encara que no iniciïs Visual Studio.
Quina diferència hi ha entre "TextTransform.exe" i "TextTransformCore.exe"?
"TextTransform.exe" és una eina primerenca que existeix des de l'arribada de l'Entity Framework.
TextTransformCore.exe és una nova eina construïda sobre .NET 6.
No hi ha cap diferència funcional important, de manera que no importa quin utilitzeu.
Crear un fitxer T4 (.tt)
No és diferent del que creeu a Visual Studio, així que utilitzeu un editor de text per crear-lo. Aquesta vegada, utilitzarem el codi que hem creat anteriorment com a 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 aquest cas, col·locarem aquest fitxer a la següent ubicació. Podeu executar-lo a qualsevol lloc, així que deixeu-lo on vulgueu.
- C:\Temporal\Sample.tt
Genera codi mitjançant l'eina de línia d'ordres "TextTransform"
A Visual Studio, va ser fàcil perquè Visual Studio va generar codi automàticament mitjançant "TextTransform", però si no utilitzeu Visual Studio, heu de generar codi manualment mitjançant "TextTransform".
TextTransform és una eina de línia d'ordres que s'instal·la quan instal·leu Visual Studio a la carpeta següent:
- < drivePath>\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
- < drivepath>\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe
[Exemple]
- C:\Fitxers de programa\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Inicieu un terminal o un símbol del sistema i utilitzeu TextTransform per generar codi.
Per a Windows 11, inicieu Terminal des del menú Inici. Per a altres sistemes operatius, utilitzeu l'indicador d'ordres.
Per al terminal, canvieu a l'indicador d'ordres. No hi ha res que no pugueu fer amb PowerShell, però la descripció canvia lleugerament.
cd
A l'ordre, aneu a la carpeta on heu col·locat el fitxer .tt i introduïu l'ordre de la següent manera: (Si us plau, canvieu la versió del camí de la carpeta segons correspongui.)
[Exemple d'entrada]
- "C:\Fitxers de programa\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Si té èxit, el procés continua com si s'hagués fet sense incidents. Si realment mireu la carpeta, podeu veure que el codi es genera automàticament.
Els continguts també es creen correctament.
Vull escurçar el camí de TextTransform quan executo una ordre.
Si no voleu escriure un camí llarg al vostre TextTransform cada vegada que executeu una ordre, podeu registrar aquest camí en una "variable d'entorn". Si es tracta d'un indicador d'ordres de desenvolupament que ve amb Visual Studio, farà referència a aquest camí per defecte, facilitant l'escriptura.
Si mireu la carpeta Visual Studio des del menú Inici, trobareu un indicador d'ordres de desenvolupament i l'iniciareu.
De la mateixa manera, quan escriviu una ordre, podeu ometre el camí del TextTransform i executar-lo.
Per cert, en el cas de Windows 11, és fàcil obrir-lo perquè està integrat al terminal.
Poseu ordres en un fitxer .bat o .ps1 per facilitar-ne l'execució
El contingut que s'ha de descriure és el mateix que quan s'introdueix una ordre normal, de manera que s'omet el contingut. Depenent de la configuració del sistema operatiu, pot estar restringit de manera que no es pugui executar fins i tot si feu doble clic al fitxer .bat o .ps1, de manera que en aquest cas, configureu-lo perquè es pugui executar.