Visual Studio लॉन्च किए बिना स्वचालित रूप से T4 के साथ कोड जनरेट करने के लिए TextTransform का उपयोग करें

पेज अद्यतन :
पेज निर्माण की तारीख :

परिचालन का वातावरण

विजुअल स्टूडियो
  • विजुअल स्टूडियो 2022
विंडोज़
  • विंडोज 11

आवश्यकताएँ

विजुअल स्टूडियो
  • यह कुछ पुराने संस्करण के साथ भी काम करता है

पूर्व शर्त

यह टिप निम्नलिखित मानती है:

  • Visual Studio Windows पर स्थापित

इस मामले में, हम "TextTransform (या TextTransformCore)" नामक एक उपकरण का उपयोग करेंगे, लेकिन चूंकि यह विजुअल स्टूडियो में शामिल एक उपकरण है, इसलिए इसे स्थापित करना आवश्यक है, भले ही आप विजुअल स्टूडियो शुरू न करें।

"TextTransform.exe" और "TextTransformCore.exe" में क्या अंतर है?

"TextTransform.exe" एक प्रारंभिक उपकरण है जो एंटिटी फ्रेमवर्क के आगमन के बाद से आसपास रहा है।

TextTransformCore.exe .NET 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 निम्न फ़ोल्डर में 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 का उपयोग करें।

विंडोज 11 के लिए, स्टार्ट मेनू से टर्मिनल लॉन्च करें। अन्य ऑपरेटिंग सिस्टम के लिए, कमांड प्रॉम्प्ट का उपयोग करें।

टर्मिनल के लिए, कमांड प्रॉम्प्ट पर स्विच करें। ऐसा कुछ भी नहीं है जो आप PowerShell के साथ नहीं कर सकते, लेकिन विवरण थोड़ा बदल जाता है।

cd कमांड में, उस फ़ोल्डर पर नेविगेट करें जहां आपने .tt फ़ाइल रखी थी और निम्नानुसार कमांड दर्ज करें: (कृपया फ़ोल्डर पथ का संस्करण उपयुक्त के रूप में परिवर्तित करें.)

[इनपुट उदाहरण]

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

सफल होने पर, प्रक्रिया आगे बढ़ती है जैसे कि यह घटना के बिना किया गया था। यदि आप वास्तव में फ़ोल्डर को देखते हैं, तो आप देख सकते हैं कि कोड स्वतः उत्पन्न होता है।

सामग्री भी ठीक से बनाई गई है।

कमांड निष्पादित करते समय मैं टेक्स्टट्रांसफॉर्म के पथ को छोटा करना चाहता हूं।

यदि आप हर बार कमांड चलाने पर अपने TextTransform के लिए एक लंबा रास्ता नहीं लिखना चाहते हैं, तो आप उस पथ को "पर्यावरण चर" में पंजीकृत कर सकते हैं। यदि यह एक विकास कमांड प्रॉम्प्ट है जो विजुअल स्टूडियो के साथ आता है, तो यह डिफ़ॉल्ट रूप से उस पथ को संदर्भित करेगा, जिससे इसे लिखना आसान हो जाएगा।

यदि आप स्टार्ट मेनू से विजुअल स्टूडियो फ़ोल्डर को देखते हैं, तो आपको एक डेवलपमेंट कमांड प्रॉम्प्ट मिलेगा और इसे लॉन्च किया जाएगा।

उसी तरह, कमांड लिखते समय, आप TextTransform के पथ को छोड़ सकते हैं और इसे निष्पादित कर सकते हैं।

वैसे, विंडोज 11 के मामले में इसे खोलना आसान है क्योंकि यह टर्मिनल में बनाया गया है।

आदेशों को चलाने में आसान बनाने के लिए उन्हें .bat या .ps1 फ़ाइल में रखें

वर्णित की जाने वाली सामग्री सामान्य कमांड दर्ज करते समय समान है, इसलिए सामग्री को छोड़ दिया जाता है। ओएस सेटिंग्स के आधार पर, इसे प्रतिबंधित किया जा सकता है ताकि इसे निष्पादित न किया जा सके, भले ही आप .bat या .ps1 फ़ाइल पर डबल-क्लिक करें, इसलिए उस स्थिति में, कृपया इसे सेट करें ताकि इसे निष्पादित किया जा सके।