Използвайте TextTransform за автоматично генериране на код с T4, без да стартирате Visual Studio
Работна среда
- Визуално студио
-
- Visual Studio 2022
- Уиндоус
-
- Windows 11
Предпоставки
- Визуално студио
-
- Работи дори с малко по-стара версия
Предпоставка
Този съвет предполага следното:
- Visual Studio, инсталиран на Windows
В този случай ще използваме инструмент, наречен "TextTransform (или TextTransformCore)", но тъй като това е инструмент, включен във Visual Studio, е необходимо да го инсталирате, дори ако не стартирате Visual Studio.
Каква е разликата между "TextTransform.exe" и "TextTransformCore.exe"?
"TextTransform.exe" е ранен инструмент, който съществува от появата на Entity Framework.
TextTransformCore.exe е нов инструмент, изграден върху .NET 6.
Няма голяма функционална разлика, така че няма значение кой използвате.
Създаване на файл T4 (.tt)
Не се различава от това, което създавате във Visual Studio, така че използвайте текстов редактор, за да го създадете. Този път ще използваме кода, който преди това създадохме като 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;
}
<# } #>
}
В този случай ще поставим този файл на следното място. Можете да го стартирате навсякъде, така че го оставете където пожелаете.
- В:\Временно\Sample.tt
Генерирайте код с помощта на инструмента за команден ред "TextTransform"
Във Visual Studio беше лесно, защото Visual Studio автоматично генерираше код с помощта на "TextTransform", но ако не използвате Visual Studio, трябва ръчно да генерирате код с помощта на "TextTransform".
TextTransform е инструмент за команден ред, който се инсталира, когато инсталирате Visual Studio в следната папка:
- < 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
[Пример]
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Стартирайте терминал или команден ред и използвайте TextTransform, за да генерирате код.
За Windows 11 стартирайте Terminal от менюто "Старт". За други операционни системи използвайте командния ред.
За терминал превключете към командния ред. Няма нищо, което да не можете да направите с PowerShell, но описанието се променя леко.
cd
В командата отидете до папката, в която сте поставили .tt файла, и въведете командата, както следва: (Моля, променете версията на пътя на папката, ако е подходящо.)
[Пример за въвеждане]
- "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Ако е успешен, процесът протича така, сякаш е направен без инциденти. Ако действително погледнете папката, можете да видите, че кодът се генерира автоматично.
Съдържанието също е правилно създадено.
Искам да съкратя пътя на TextTransform при изпълнение на команда.
Ако не искате да пишете дълъг път към вашия TextTransform всеки път, когато изпълнявате команда, можете да регистрирате този път в "променлива на средата". Ако това е команден ред за разработка, който идва с Visual Studio, той ще препраща към този път по подразбиране, което улеснява писането.
Ако погледнете папката Visual Studio от менюто "Старт", ще намерите команден ред за разработка и ще го стартирате.
По същия начин, когато пишете команда, можете да пропуснете пътя на TextTransform и да го изпълните.
Между другото, в случая с Windows 11 е лесно да го отворите, защото е вграден в терминала.
Поставете команди в .bat или .ps1 файл, за да ги улесните за изпълнение
Съдържанието, което трябва да се опише, е същото като при въвеждане на нормална команда, така че съдържанието се пропуска. В зависимост от настройките на операционната система, тя може да бъде ограничена, така че да не може да бъде изпълнена, дори ако щракнете двукратно върху файла .bat или .ps1, така че в този случай, моля, задайте го така, че да може да бъде изпълнен.