Utilisez TextTransform pour générer automatiquement du code avec T4 sans lancer Visual Studio

Page mise à jour :
Date de création de la page :

Environnement d’exploitation

Studio visuel
  • Visual Studio 2022
Windows
  • Windows 11

Conditions préalables

Studio visuel
  • Cela fonctionne même avec une version un peu plus ancienne

condition préalable

Cette astuce suppose ce qui suit :

  • Visual Studio installé sur Windows

Dans ce cas, nous allons utiliser un outil appelé « TextTransform (ou TextTransformCore) », mais comme il s’agit d’un outil inclus dans Visual Studio, il est nécessaire de l’installer même si vous ne démarrez pas Visual Studio.

Quelle est la différence entre « TextTransform.exe » et « TextTransformCore.exe » ?

« TextTransform.exe » est un outil précoce qui existe depuis l’avènement de l’Entity Framework.

TextTransformCore.exe s’agit d’un nouvel outil basé sur .NET 6.

Il n’y a pas de différence fonctionnelle majeure, donc peu importe celui que vous utilisez.

Créer un fichier T4 (.tt)

Ce n’est pas différent de ce que vous créez dans Visual Studio, utilisez donc un éditeur de texte pour le créer. Cette fois, nous utiliserons le code que nous avons précédemment créé en tant que M./Mme.

<#@ 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;
  }
<# } #>
}

Dans ce cas, nous placerons ce fichier à l’emplacement suivant. Vous pouvez l’utiliser n’importe où, alors laissez-le où vous le souhaitez.

  • C :\Temporaire\Sample.tt

Générer du code à l’aide de l’outil en ligne de commande « TextTransform »

Dans Visual Studio, c’était facile car Visual Studio générait automatiquement du code à l’aide de « TextTransform », mais si vous n’utilisez pas Visual Studio, vous devez générer manuellement du code à l’aide de « TextTransform ».

TextTransform est un outil de ligne de commande qui est installé lorsque vous installez Visual Studio dans le dossier suivant :

  • < drivePath>\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
  • < chemin d’accès >\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransformCore.exe

[Exemple]

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

Lancez un terminal ou une invite de commande et utilisez TextTransform pour générer du code.

Pour Windows 11, lancez Terminal à partir du menu Démarrer. Pour les autres systèmes d’exploitation, utilisez l’invite de commande.

Pour le terminal, passez à l’invite de commande. Il n’y a rien que vous ne puissiez pas faire avec PowerShell, mais la description change légèrement.

cd Dans la commande, accédez au dossier dans lequel vous avez placé le fichier .tt et entrez la commande comme suit : (Veuillez modifier la version du chemin d’accès au dossier le cas échéant.)

[Exemple de saisie]

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

En cas de succès, le processus se déroule comme s’il s’était déroulé sans incident. Si vous regardez le dossier, vous pouvez voir que le code est généré automatiquement.

Le contenu est également correctement créé.

Je souhaite raccourcir le chemin d’accès de TextTransform lors de l’exécution d’une commande.

Si vous ne souhaitez pas écrire un long chemin d’accès à votre TextTransform à chaque fois que vous exécutez une commande, vous pouvez enregistrer ce chemin d’accès dans une « variable d’environnement ». S’il s’agit d’une invite de commande de développement fournie avec Visual Studio, il référencera ce chemin d’accès par défaut, ce qui facilitera l’écriture.

Si vous examinez le dossier Visual Studio à partir du menu Démarrer, vous trouverez une invite de commande de développement et vous la lancerez.

De la même manière, lors de l’écriture d’une commande, vous pouvez omettre le chemin d’accès du TextTransform et l’exécuter.

D’ailleurs, dans le cas de Windows 11, il est facile de l’ouvrir car il est intégré au terminal.

Mettez les commandes dans un fichier .bat ou .ps1 pour les rendre faciles à exécuter

Le contenu à décrire est le même que lors de la saisie d’une commande normale, de sorte que le contenu est omis. Selon les paramètres du système d’exploitation, il peut être restreint de sorte qu’il ne peut pas être exécuté même si vous double-cliquez sur le fichier .bat ou .ps1, donc dans ce cas, veuillez le configurer pour qu’il puisse être exécuté.