Використовуйте TextTransform для автоматичної генерації коду за допомогою T4 без запуску Visual Studio

Сторінка оновлюється :
Дата створення сторінки :

Робоче середовище

Візуальна студія
  • Visual Studio 2022
Вікна
  • Вікна 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;
  }
<# } #>
}

У цьому випадку ми розмістимо цей файл у наступному місці. Ви можете запустити його де завгодно, тому залиште його там, де вам заманеться.

  • C:\Тимчасовий\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 запустіть Термінал із меню «Пуск». Для інших операційних систем використовуйте командний рядок.

Для терміналу перейдіть до командного рядка. З 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, тому в такому випадку встановіть його так, щоб його можна було виконати.