Använd TextTransform för att automatiskt generera kod med T4 utan att starta Visual Studio
Omvärld
- Visuell studio
-
- Visual Studio 2022
- Windows
-
- Windows 11 (på engelska)
Förutsättningar
- Visuell studio
-
- Det fungerar även med en något äldre version
förutsättning
Det här tipset förutsätter följande:
- Visual Studio installerat på Windows
I det här fallet kommer vi att använda ett verktyg som heter "TextTransform (eller TextTransformCore)", men eftersom det är ett verktyg som ingår i Visual Studio är det nödvändigt att installera det även om du inte startar Visual Studio.
Vad är skillnaden mellan "TextTransform.exe" och "TextTransformCore.exe"?
"TextTransform.exe" är ett tidigt verktyg som har funnits sedan tillkomsten av Entity Framework.
TextTransformCore.exe är ett nytt verktyg som bygger på .NET 6.
Det är ingen större funktionsskillnad, så det spelar ingen roll vilken du använder.
Skapa en T4-fil (.tt)
Det skiljer sig inte från vad du skapar i Visual Studio, så använd en textredigerare för att skapa det. Den här gången kommer vi att använda koden som vi tidigare skapade som en 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 det här fallet kommer vi att placera den här filen på följande plats. Du kan köra den var som helst, så lämna den var du vill.
- C:\Tillfälligt\Sample.tt
Generera kod med kommandoradsverktyget "TextTransform"
I Visual Studio var det enkelt eftersom Visual Studio automatiskt genererade kod med hjälp av "TextTransform", men om du inte använder Visual Studio måste du manuellt generera kod med hjälp av "TextTransform".
TextTransform är ett kommandoradsverktyg som installeras när du installerar Visual Studio i följande mapp:
- < 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
[Exempel]
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Starta en terminal eller kommandotolk och använd TextTransform för att generera kod.
För Windows 11, starta Terminal från Start-menyn. För andra operativsystem använder du kommandotolken.
För terminal, växla till kommandotolken. Det finns inget du inte kan göra med PowerShell, men beskrivningen ändras något.
cd
I kommandot navigerar du till mappen där du placerade .tt-filen och anger kommandot på följande sätt: (Ändra versionen av mappsökvägen efter behov.)
[Exempel på inmatning]
- "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Om det lyckas fortsätter processen som om den gjordes utan incidenter. Om du faktiskt tittar på mappen kan du se att koden genereras automatiskt.
Innehållet är också korrekt skapat.
Jag vill förkorta sökvägen till TextTransform när jag kör ett kommando.
Om du inte vill skriva en lång sökväg till din TextTransform varje gång du kör ett kommando kan du registrera sökvägen i en "miljövariabel". Om det är en kommandotolk för utveckling som följer med Visual Studio kommer den att referera till den sökvägen som standard, vilket gör det lättare att skriva.
Om du tittar på Visual Studio-mappen på Start-menyn hittar du en kommandotolk för utveckling och startar den.
På samma sätt kan du, när du skriver ett kommando, utelämna sökvägen till TextTransform och köra den.
Förresten, när det gäller Windows 11 är det lätt att öppna den eftersom den är inbyggd i terminalen.
Placera kommandon i en .bat- eller .ps1-fil för att göra dem enkla att köra
Innehållet som ska beskrivas är detsamma som när du anger ett vanligt kommando, så innehållet utelämnas. Beroende på OS-inställningarna kan den vara begränsad så att den inte kan köras även om du dubbelklickar på .bat- eller .ps1-filen, så ställ i så fall in den så att den kan köras.