Comment utiliser les modèles de génération de code T4 avec des projets VS C ++?

StackOverflow https://stackoverflow.com/questions/496214

  •  20-08-2019
  •  | 
  •  

Question

Les fichiers de modèle T4 sont automatiquement reconnaissables par l'EDI sous les projets C #, mais je n'ai aucune idée de la façon dont ils peuvent être intégrés à des projets C ++ (autres que l'utilisation de fichiers make).

Des idées?

Était-ce utile?

La solution

Les fichiers de modèle T4 peuvent être intégrés dans des projets C ++, mais cela demande un peu plus de travail qu’avec un projet C # / VB. Créez un nouveau fichier texte dans votre projet C ++ et attribuez-lui une extension .tt. Ensuite, écrivez votre modèle comme d'habitude. Un projet C ++ a ensuite besoin de travail supplémentaire pour le faire transformer les modèles. Le moyen le plus rapide et le plus rapide de le faire fonctionner était d’ajouter une étape de construction personnalisée et de l’appeler & Quot; C: \ Fichiers communs \ Fichiers communs \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe & Quot; directement. Une autre méthode que j'ai trouvée consiste à ajouter une tâche MSBuild personnalisée. Les instructions peuvent être trouvées ici

Cette page contient davantage d'informations et de bons liens vers d'autres pages sur l'utilisation du code T4. génération.

Autres conseils

MSBuild Task ne fonctionnera pas car il s’agit d’un fichier vcproj (C ++), donc vcbuild est utilisé. Le moyen le plus simple d’obtenir le tt compilé est d’ajouter une étape de construction personnalisée comme ci-dessous.

"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"

J'ai passé plusieurs heures à étudier la solution de tâches MSBuild ci-dessus. C'est assez bon pour le code géré, mais je ne vois pas comment l'utiliser pour C ++ (la conversion de vcproj en csproj eek est impossible)

Pour Visual Studio 2017 (et peut-être 2015?)

Les commandes répertoriées dans les autres réponses sont en partie incorrectes, car le fichier TextTransform.exe a été déplacé vers un nouveau répertoire: le dossier racine devenv, par exemple:

.
C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE

La commande devrait maintenant être mise à jour avec les éléments suivants:

"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"

xxx est le nom de fichier de votre .tt fichier de modèle

scroll top