استفاده از TextTransform برای تولید خودکار کد با T4 بدون راه اندازی ویژوال استودیو

صفحه به روز شده :
تاریخ ایجاد صفحه :

محیط عملیاتی

ویژوال استودیو
  • ویژوال استودیو 2022
ویندوز
  • ویندوز 11

پیش نیازها

ویژوال استودیو
  • حتی با نسخه تا حدودی قدیمی تر نیز کار می کند

پیش شرط

این نکته موارد زیر را فرض می کند:

  • ویژوال استودیو روی ویندوز نصب شده است

در این حالت از ابزاری به نام "TextTransform (یا TextTransformCore)" استفاده خواهیم کرد، اما از آنجایی که ابزاری است که در ویژوال استودیو گنجانده شده است، حتی اگر ویژوال استودیو را راه اندازی نکنید، لازم است آن را نصب کنید.

تفاوت بین "TextTransform.exe" و "TextTransformCore.exe" چیست؟

"TextTransform.exe" یک ابزار اولیه است که از زمان ظهور Entity Framework وجود داشته است.

TextTransformCore.exe ابزار جدیدی است که بر روی دات نت 6 ساخته شده است.

هیچ تفاوت عملکردی عمده ای وجود ندارد، بنابراین مهم نیست که از کدام یک استفاده می کنید.

ایجاد یک فایل T4 (.tt)

این هیچ تفاوتی با آنچه در ویژوال استودیو ایجاد می کنید ندارد، بنابراین از یک ویرایشگر متن برای ایجاد آن استفاده کنید. این بار از کدی که قبلا به عنوان آقای/خانم ایجاد کرده بودیم استفاده خواهیم کرد.

<#@ 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"

در ویژوال استودیو، این کار آسان بود زیرا ویژوال استودیو به طور خودکار کد را با استفاده از "TextTransform" تولید می کند، اما اگر از ویژوال استودیو استفاده نمی کنید، باید به صورت دستی با استفاده از "TextTransform" کد تولید کنید.

TextTransform یک ابزار خط فرمان است که هنگام نصب ویژوال استودیو در پوشه زیر نصب می شود:

  • < 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

[مثال]

  • ج:\فایل های برنامه\مایکروسافت ویژوال استودیو\2022\انجمن\Common7\IDE\TextTransform.exe

یک ترمینال یا خط فرمان را راه اندازی کنید و از TextTransform برای تولید کد استفاده کنید.

برای ویندوز 11، ترمینال را از منوی استارت راه اندازی کنید. برای سایر سیستم عامل ها، از خط فرمان استفاده کنید.

برای ترمینال، به خط فرمان بروید. هیچ کاری نمی توانید با PowerShell انجام دهید، اما توضیحات کمی تغییر می کند.

cd در دستور، به پوشه ای بروید که فایل .tt را در آن قرار داده اید و دستور را به صورت زیر وارد کنید: (لطفا نسخه مسیر پوشه را در صورت لزوم تغییر دهید.)

[مثال ورودی]

  • "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt

در صورت موفقیت، فرآیند به گونه ای پیش می رود که گویی بدون حادثه انجام شده است. اگر واقعا به پوشه نگاه کنید، می بینید که کد به طور خودکار تولید شده است.

محتویات نیز به درستی ایجاد شده اند.

من می خواهم مسیر TextTransform را هنگام اجرای یک دستور کوتاه کنم.

اگر نمی خواهید هر بار که دستوری را اجرا می کنید، یک مسیر طولانی برای TextTransform خود بنویسید، می توانید آن مسیر را در یک "متغیر محیطی" ثبت کنید. اگر یک خط فرمان توسعه باشد که همراه با ویژوال استودیو ارائه می شود، به طور پیش فرض به آن مسیر ارجاع می دهد و نوشتن آن را آسان تر می کند.

اگر از منوی استارت به پوشه ویژوال استودیو نگاه کنید، یک خط فرمان توسعه پیدا کرده و آن را راه اندازی خواهید کرد.

به همین ترتیب هنگام نوشتن یک فرمان می توانید مسیر TextTransform را حذف کرده و آن را اجرا کنید.

به هر حال، در مورد ویندوز 11، باز کردن آن آسان است زیرا در ترمینال تعبیه شده است.

دستورات را در یک فایل .bat یا ps1 قرار دهید تا اجرای آنها آسان شود

محتوایی که باید توضیح داده شود مانند هنگام وارد کردن یک دستور معمولی است، بنابراین محتوا حذف می شود. بسته به تنظیمات سیستم عامل، ممکن است محدود شود تا حتی اگر روی فایل .bat یا ps1 دوبار کلیک کنید، نمی توان آن را اجرا کرد، بنابراین در این صورت، لطفا آن را طوری تنظیم کنید که بتوان آن را اجرا کرد.