Gebruik TextTransform om automatisch code te genereren met T4 zonder Visual Studio te starten

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Werkomgeving

Visuele Studio
  • Visuele Studio 2022
Ramen
  • Windows 11

Voorwaarden

Visuele Studio
  • Het werkt zelfs met een wat oudere versie

voorwaarde

Deze tip gaat uit van het volgende:

  • Visual Studio geïnstalleerd op Windows

In dit geval gebruiken we een tool met de naam "TextTransform (of TextTransformCore)", maar aangezien het een tool is die is opgenomen in Visual Studio, is het noodzakelijk om deze te installeren, zelfs als u Visual Studio niet start.

Wat is het verschil tussen "TextTransform.exe" en "TextTransformCore.exe"?

"TextTransform.exe" is een vroeg hulpmiddel dat al bestaat sinds de komst van het Entity Framework.

TextTransformCore.exe is een nieuwe tool die bovenop .NET 6 is gebouwd.

Er is geen groot functioneel verschil, dus het maakt niet uit welke je gebruikt.

Een T4-bestand (.tt) maken

Het is niet anders dan wat u in Visual Studio maakt, dus gebruik een teksteditor om het te maken. Deze keer gebruiken we de code die we eerder als meneer/mevrouw hebben gemaakt.

<#@ 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 dit geval plaatsen we dit bestand op de volgende locatie. Je kunt hem overal gebruiken, dus laat hem staan waar je maar wilt.

  • C:\Tijdelijk\Sample.tt

Genereer code met behulp van de opdrachtregeltool "TextTransform"

In Visual Studio was het gemakkelijk omdat Visual Studio automatisch code genereerde met behulp van "TextTransform", maar als je Visual Studio niet gebruikt, moet je handmatig code genereren met behulp van "TextTransform".

TextTransform is een opdrachtregelprogramma dat wordt geïnstalleerd wanneer u Visual Studio installeert in de volgende map:

  • < 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

[Voorbeeld]

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

Start een terminal of opdrachtprompt en gebruik TextTransform om code te genereren.

Start voor Windows 11 Terminal vanuit het menu Start. Gebruik voor andere besturingssystemen de opdrachtprompt.

Schakel voor terminal over naar de opdrachtprompt. Er is niets dat u niet kunt doen met PowerShell, maar de beschrijving verandert enigszins.

cd Navigeer in de opdracht naar de map waar je het .tt-bestand hebt geplaatst en voer de opdracht als volgt in: (Wijzig de versie van het mappad indien nodig.)

[Voorbeeld invoeren]

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

Als dit lukt, verloopt het proces alsof het zonder incidenten is verlopen. Als je daadwerkelijk naar de map kijkt, kun je zien dat de code automatisch wordt gegenereerd.

Ook de inhoud is goed gemaakt.

Ik wil het pad van TextTransform verkorten bij het uitvoeren van een opdracht.

Als je niet elke keer dat je een commando uitvoert een lang pad naar je TextTransform wilt schrijven, kun je dat pad registreren in een "omgevingsvariabele". Als het een ontwikkelingsopdrachtprompt is die bij Visual Studio wordt geleverd, verwijst deze standaard naar dat pad, waardoor het gemakkelijker wordt om te schrijven.

Als u in het menu Start naar de map Visual Studio kijkt, vindt u een opdrachtprompt voor ontwikkeling en start u deze.

Op dezelfde manier kunt u bij het schrijven van een opdracht het pad van de TextTransform weglaten en uitvoeren.

Trouwens, in het geval van Windows 11 is het gemakkelijk om het te openen omdat het in de terminal is ingebouwd.

Zet opdrachten in een .bat- of .ps1-bestand om ze gemakkelijk uit te voeren

De te beschrijven inhoud is hetzelfde als bij het invoeren van een normale opdracht, dus de inhoud wordt weggelaten. Afhankelijk van de instellingen van het besturingssysteem kan het beperkt zijn, zodat het niet kan worden uitgevoerd, zelfs niet als u dubbelklikt op het .bat- of .ps1-bestand, dus stel het in dat geval zo in dat het kan worden uitgevoerd.