2009-01-30 7 views

Répondre

10

T4 Les fichiers modèles peuvent être intégrés dans des projets C++, mais c'est 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++ nécessite alors un travail supplémentaire pour l'amener à transformer les modèles. Le moyen rapide et sale que j'ai eu à travailler était d'ajouter une étape de construction personnalisée et de l'appeler directement "C: \ Program Files \ Fichiers communs \ Microsoft Shared \ TextTemplating \ 1.1 \ TextTransform.exe". Une autre façon que j'ai trouvée était d'ajouter une tâche MSBuild personnalisée. Des instructions peuvent être trouvées here

This La page contient plus d'informations et de bons liens vers d'autres pages sur l'utilisation de la génération de code T4.

+0

D'une certaine manière, cela ne semble pas fonctionner. Essayez de créer un nouveau projet Win32 C++. Ensuite, ajoutez un fichier .tt simple et cliquez sur construire. Rien n'est généré. –

+0

oups, vous avez raison. Modifier ma réponse – Logan5

+0

Merci pour votre réponse. Il peut être fait pour fonctionner, mais n'est définitivement pas aussi pratique que C#. Espérons que cela va changer dans le prochain VS 2010. –

4

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

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

J'ai passé plusieurs heures à étudier la solution MSBuild Task ci-dessus et c'est plutôt bon pour le code managé, mais je ne vois pas comment utilisez-le pour le C++ (barre convertissant le vcproj en csproj eek)

+0

Même avec cette solution, n'avez-vous pas encore besoin d'ajouter manuellement le fichier cpp au fichier vcproj? – MrSlippers