Używanie funkcji TextTransform do automatycznego generowania kodu za pomocą protokołu T4 bez uruchamiania programu Visual Studio
Środowisko pracy
- Visual Studio
-
- informacji o wersji Visual Studio 2022
- Windows
-
- Okna 11
Warunki wstępne
- Visual Studio
-
- Działa nawet z nieco starszą wersją
Warunek wstępny
W tej wskazówce założono, że:
- Program Visual Studio zainstalowany w systemie Windows
W takim przypadku użyjemy narzędzia o nazwie "TextTransform (lub TextTransformCore)", ale ponieważ jest to narzędzie zawarte w programie Visual Studio, konieczne jest jego zainstalowanie, nawet jeśli nie uruchomisz programu Visual Studio.
Jaka jest różnica między "TextTransform.exe" a "TextTransformCore.exe"?
"TextTransform.exe" to wczesne narzędzie, które istnieje od czasu pojawienia się programu Entity Framework.
TextTransformCore.exe to nowe narzędzie oparte na platformie .NET 6.
Nie ma większej różnicy funkcjonalnej, więc nie ma znaczenia, którego z nich używasz.
Tworzenie pliku T4 (.tt)
Nie różni się ona od tego, co tworzysz w programie Visual Studio, więc użyj edytora tekstów, aby ją utworzyć. Tym razem użyjemy kodu, który wcześniej utworzyliśmy jako Pan/Pani.
<#@ 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;
}
<# } #>
}
W takim przypadku umieścimy ten plik w następującej lokalizacji. Możesz go uruchomić w dowolnym miejscu, więc zostaw go tam, gdzie chcesz.
- C:\Tymczasowy\Sample.tt
Generuj kod za pomocą narzędzia wiersza poleceń "TextTransform"
W programie Visual Studio było to łatwe, ponieważ program Visual Studio automatycznie wygenerował kod przy użyciu polecenia "TextTransform", ale jeśli nie używasz programu Visual Studio, musisz ręcznie wygenerować kod przy użyciu polecenia "TextTransform".
TextTransform to narzędzie wiersza polecenia, które jest instalowane podczas instalowania programu Visual Studio w następującym folderze:
- < 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
[Przykład]
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Uruchom terminal lub wiersz polecenia i użyj funkcji TextTransform do wygenerowania kodu.
W systemie Windows 11 uruchom Terminal z menu Start. W przypadku innych systemów operacyjnych użyj wiersza polecenia.
W przypadku terminala przejdź do wiersza polecenia. Nie ma nic, czego nie można zrobić za pomocą programu PowerShell, ale opis nieznacznie się zmienia.
cd
W poleceniu przejdź do folderu, w którym umieściłeś plik .tt i wprowadź polecenie w następujący sposób: (Zmień odpowiednio wersję ścieżki do folderu).
[Przykład danych wejściowych]
- "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Jeśli się powiedzie, proces przebiega tak, jakby został wykonany bez incydentów. Jeśli faktycznie spojrzysz na folder, zobaczysz, że kod jest generowany automatycznie.
Treści są również poprawnie tworzone.
Chcę skrócić ścieżkę TextTransform podczas wykonywania polecenia.
Jeśli nie chcesz pisać długiej ścieżki do obiektu TextTransform za każdym razem, gdy uruchamiasz polecenie, możesz zarejestrować tę ścieżkę w "zmiennej środowiskowej". Jeśli jest to wiersz polecenia programowania, który jest dostarczany z programem Visual Studio, będzie domyślnie odwoływać się do tej ścieżki, co ułatwi pisanie.
Jeśli spojrzysz na folder programu Visual Studio z menu Start, znajdziesz wiersz polecenia programowania i uruchomisz go.
W ten sam sposób, pisząc polecenie, możesz pominąć ścieżkę TextTransform i wykonać ją.
Nawiasem mówiąc, w przypadku systemu Windows 11 łatwo go otworzyć, ponieważ jest wbudowany w terminal.
Umieść polecenia w pliku .bat lub .ps1, aby ułatwić ich uruchamianie
Treść, która ma być opisana, jest taka sama, jak przy wprowadzaniu normalnego polecenia, a więc treść jest pomijana. W zależności od ustawień systemu operacyjnego może być ograniczony, aby nie można go było wykonać, nawet jeśli dwukrotnie klikniesz plik .bat lub .ps1, więc w takim przypadku ustaw go tak, aby można go było wykonać.