J'ai utilisé la réponse de MarkGr et développé cette solution. Tout d'abord, créez un fichier batch appelé RunTemplate.bat dans un outils au-dessus du dossier de la solution principale. Le fichier batch a juste la ligne :
"%CommonProgramFiles%\Microsoft Shared\TextTemplating\1.2\texttransform.exe" -out %1.cs -P %2 -P "%ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.5" %1.tt
Ce fichier batch prend 2 paramètres... %1 est le chemin d'accès au fichier .tt sans l'extension .tt. %2 est le chemin d'accès à toute DLL mentionnée par Montage dans le modèle.
Ensuite, allez dans les propriétés du projet contenant le modèle T4. Allez dans Événements de construction et ajoutez ce qui suit Ligne de commande de l'événement de pré-construction :
$(SolutionDir)..\..\tools\RunTemplate.bat $(ProjectDir)MyTemplate $(OutDir)
remplacement de MonModèle avec le nom de fichier de votre fichier .tt (c'est-à-dire MyTemplate.tt) sans l'extension .tt. Cela aura pour résultat de développer le modèle pour produire MyTemplate.cs avant de construire le projet. Ensuite, la construction réelle compilera MyTemplate.cs.
0 votes
Je serais personnellement très intéressé par une réponse à cette question, mais quel est votre scénario particulier ? Normalement, la sortie du modèle devrait être une fonction de l'entrée uniquement, donc la génération sur changement est bien.
7 votes
Mon modèle utilise la réflexion pour examiner les autres assemblages, qui peuvent avoir été modifiés depuis la dernière version.
0 votes
Que pensez-vous de cette idée : stackoverflow.com/questions/1649649/
0 votes
Mon modèle n'a qu'un seul but, enregistrer la date et l'heure de construction.
0 votes
Voir docs.microsoft.com/fr/us/visualstudio/modeling/