Izmantojiet TextTransform, lai automātiski ģenerētu kodu ar T4, nepalaižot Visual Studio

Lapa atjaunota :
Lapas izveides datums :

Darbības vide

Visual Studio
  • Visual Studio 2022
Windows
  • Operētājsistēmā Windows 11

Priekšnoteikumi

Visual Studio
  • Tas darbojas pat ar nedaudz vecāku versiju

Priekšnosacījumu

Šis padoms pieņem:

  • Operētājsistēmā Windows instalēta programma Visual Studio

Šajā gadījumā mēs izmantosim rīku ar nosaukumu "TextTransform (vai TextTransformCore)", bet, tā kā tas ir rīks, kas iekļauts Visual Studio, tas ir jāinstalē pat tad, ja nestartējat Visual Studio.

Kāda ir atšķirība starp "TextTransform.exe" un "TextTransformCore.exe"?

"TextTransform.exe" ir agrīns rīks, kas pastāv kopš Vienību ietvarstruktūras izveides.

TextTransformCore.exe ir jauns rīks, kas veidots uz .NET 6 bāzes.

Nav būtiskas funkcionālas atšķirības, tāpēc nav svarīgi, kuru izmantojat.

T4 faila (.tt) izveide

Tas neatšķiras no tā, ko izveidojat programmā Visual Studio, tāpēc tā izveidei izmantojiet teksta redaktoru. Šoreiz mēs izmantosim kodu, kuru iepriekš izveidojām kā 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;
  }
<# } #>
}

Šajā gadījumā mēs ievietosim šo failu šādā vietā. Jūs varat to palaist jebkurā vietā, tāpēc atstājiet to, kur vien vēlaties.

  • C:\Pagaidu\Sample.tt

Ģenerējiet kodu, izmantojot komandrindas rīku "TextTransform"

Visual Studio tas bija viegli, jo Visual Studio automātiski ģenerēja kodu, izmantojot "TextTransform", bet, ja neizmantojat Visual Studio, jums ir manuāli jāģenerē kods, izmantojot "TextTransform".

TextTransform ir komandrindas rīks, kas tiek instalēts, instalējot Visual Studio šajā mapē:

  • < drivePath>\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
  • < drivepath>\Program Files\Microsoft Visual Studio\<Visual Studio versija>\<Editions>\Common7\IDE\TextTransformCore.exe

[Piemērs]

  • C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe

Palaidiet termināļa vai komandu uzvedni un izmantojiet TextTransform, lai ģenerētu kodu.

Operētājsistēmai Windows 11 izvēlnē Sākt palaidiet termināli. Citām operētājsistēmām izmantojiet komandu uzvedni.

Terminālim pārslēdzieties uz komandu uzvedni. Ar PowerShell neko nevar darīt, taču apraksts nedaudz mainās.

cd Komandā naviģējiet uz mapi, kurā ievietojāt .tt failu, un ievadiet komandu šādi: (Lūdzu, pēc vajadzības mainiet mapes ceļa versiju.)

[Ievades piemērs]

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

Ja tas ir veiksmīgs, process notiek tā, it kā tas tiktu darīts bez starpgadījumiem. Ja jūs faktiski skatāties uz mapi, jūs varat redzēt, ka kods ir automātiski ģenerēts.

Saturs ir arī pareizi izveidots.

Es vēlos saīsināt TextTransform ceļu, izpildot komandu.

Ja nevēlaties rakstīt garu ceļu uz savu TextTransform katru reizi, kad palaižat komandu, varat reģistrēt šo ceļu "vides mainīgajā". Ja tas ir izstrādes komandu uzvedne, kas tiek piegādāta kopā ar Visual Studio, tā pēc noklusējuma atsauksies uz šo ceļu, atvieglojot rakstīšanu.

Ja izvēlnē Sākt skatāt Visual Studio mapi, atradīsit izstrādes komandu uzvedni un palaidīsit to.

Tādā pašā veidā, rakstot komandu, varat izlaist TextTransform ceļu un izpildīt to.

Starp citu, Windows 11 gadījumā to ir viegli atvērt, jo tas ir iebūvēts terminālī.

Ievietojiet komandas .bat vai .ps1 failā, lai tās būtu viegli palaist

Aprakstāmais saturs ir tāds pats kā ievadot parastu komandu, tāpēc saturs tiek izlaists. Atkarībā no OS iestatījumiem tas var būt ierobežots, lai to nevarētu izpildīt pat tad, ja veicat dubultklikšķi uz .bat vai .ps1 faila, tāpēc tādā gadījumā, lūdzu, iestatiet to tā, lai to varētu izpildīt.