Использование TextTransform для автоматического создания кода с помощью T4 без запуска 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;
  }
<# } #>
}

В этом случае мы разместим этот файл в следующем месте. Вы можете запустить его где угодно, поэтому оставьте его где угодно.

  • 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, поэтому в этом случае установите его так, чтобы его можно было выполнить.