Brug TextTransform til automatisk at generere kode med T4 uden at starte Visual Studio
Driftsmiljø
- Visual Studio
-
- Visual Studio 2022
- Windows
-
- Windows 11
Forudsætninger
- Visual Studio
-
- Det fungerer selv med en noget ældre version
forudsætning
Dette tip forudsætter følgende:
- Visual Studio installeret på Windows
I dette tilfælde vil vi bruge et værktøj kaldet "TextTransform (eller TextTransformCore)", men da det er et værktøj, der er inkluderet i Visual Studio, er det nødvendigt at installere det, selvom du ikke starter Visual Studio.
Hvad er forskellen mellem "TextTransform.exe" og "TextTransformCore.exe"?
"TextTransform.exe" er et tidligt værktøj, der har eksisteret siden fremkomsten af Entity Framework.
TextTransformCore.exe er et nyt værktøj bygget oven på .NET 6.
Der er ingen større funktionel forskel, så det er lige meget, hvilken du bruger.
Opret en T4-fil (.tt)
Det er ikke anderledes end det, du opretter i Visual Studio, så brug et tekstredigeringsprogram til at oprette det. Denne gang vil vi bruge den kode, som vi tidligere har oprettet som 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;
}
<# } #>
}
I dette tilfælde placerer vi denne fil på følgende placering. Du kan køre den hvor som helst, så lad den være, hvor du vil.
- C:\Midlertidig\Sample.tt
Generer kode ved hjælp af kommandolinjeværktøjet "TextTransform"
I Visual Studio var det nemt, fordi Visual Studio automatisk genererede kode ved hjælp af "TextTransform", men hvis du ikke bruger Visual Studio, skal du manuelt generere kode ved hjælp af "TextTransform".
TextTransform er et kommandolinjeværktøj, der installeres, når du installerer Visual Studio i følgende mappe:
- < drivePath>\Programmer\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
- < drevsti>\Programmer\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe
[Eksempel]
- C:\Programmer\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Start en terminal eller kommandoprompt, og brug TextTransform til at generere kode.
For Windows 11 skal du starte Terminal fra Start-menuen. For andre operativsystemer skal du bruge kommandoprompten.
For terminal skal du skifte til kommandoprompten. Der er ikke noget, du ikke kan gøre med PowerShell, men beskrivelsen ændrer sig lidt.
cd
I kommandoen skal du navigere til den mappe, hvor du placerede .tt-filen, og indtaste kommandoen som følger: (Skift venligst versionen af mappestien efter behov.)
[ Eksempel på input ]
- "C:\Programmer\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Hvis det lykkes, fortsætter processen, som om den blev gjort uden hændelser. Hvis du rent faktisk kigger på mappen, kan du se, at koden er automatisk genereret.
Indholdet er også korrekt oprettet.
Jeg vil forkorte stien til TextTransform, når jeg udfører en kommando.
Hvis du ikke vil skrive en lang sti til din TextTransform, hver gang du kører en kommando, kan du registrere den sti i en "miljøvariabel". Hvis det er en udviklingskommandoprompt, der følger med Visual Studio, refererer den som standard til denne sti, hvilket gør det nemmere at skrive.
Hvis du ser på Visual Studio-mappen fra Start-menuen, finder du en udviklingskommandoprompt og starter den.
På samme måde, når du skriver en kommando, kan du udelade stien til TextTransform og udføre den.
I øvrigt er det i tilfældet med Windows 11 nemt at åbne det, fordi det er indbygget i terminalen.
Indsæt kommandoer i en .bat- eller .ps1-fil for at gøre dem nemme at køre
Indholdet, der skal beskrives, er det samme, som når du indtaster en normal kommando, så indholdet udelades. Afhængigt af OS-indstillingerne kan det være begrænset, så det ikke kan udføres, selvom du dobbeltklikker på .bat- eller .ps1-filen, så i så fald skal du indstille den, så den kan udføres.