2010-02-14 3 views
3

J'utilise T4 pour la génération de certaines classes DTO + mappeurs. Je divise les fichiers en un certain nombre de bits réutilisables (dont certains contiennent des méthodes communes, d'autres procédures communes) et en les incluant dans les modèles T4 qui produiront ma sortie - ce qui est très bien. Mon problème est que les fichiers .tt réutilisables vont essayer de produire leur propre sortie et échouer (parce qu'ils sont couplés à d'autres fichiers .tt) chaque fois que je fais une modification à eux, ce qui est nul.Comment spécifier si un fichier T4 doit produire une sortie

Je suis sûr que j'ai vu quelque part une directive pour spécifier un fichier donné ne devrait pas essayer de produire une sortie, mais je n'arrive pas à le retrouver.

Toute aide appréciée!

Répondre

4

Dans les propriétés (sélectionnez le fichier et appuyez sur F4) des fichiers T4 pour lesquels vous souhaitez supprimer la sortie, effacez l'entrée 'Outil personnalisé'.

+0

cela semble exactement ce dont j'ai besoin - est-il possible de le faire à partir du balisage? – JohnIdol

+0

Son dans le balisage pour le projet - à savoir le fichier .xxproj. –

+0

@JohnIdol - Je ne crois pas qu'il existe un moyen de supprimer la sortie dans la marque du fichier T4 lui-même. Comme le dit Preet, le paramètre est contrôlé par l'existence d'un élément TextTemplatingFileGenerator dans le fichier de projet, ce qui vous permet de le supprimer comme alternative à la suppression de la propriété via l'interface graphique VS. –

1

les renommer .ttinclude et voir comment ça se passe pour toi ....

+0

Si le fichier a déjà été ajouté en tant que fichier T4, l'outil personnalisé sera toujours défini. Changer l'extension de 'tt' à 'ttinclude' ne supprimera pas cette propriété. –

7

Vous pouvez spécifier l'extension non valide pour supprimer la sortie de votre modèle, par exemple:

<#@ output extension="\n" #> 
+0

belle astuce - merci! – JohnIdol

+1

+1. C'est adorable et horrible! Cela fonctionne parfaitement pour nos objectifs.Nous redirigeons la sortie de notre fichier TT vers un autre emplacement, et nous avons besoin de supprimer la sortie normale. –

4

Je ne J'ai assez de 'StackOverflow street cred' pour répondre à la réponse de Stanislav Kniazev, donc je devrais poster mon propre ici. Merci pour l'avance Stanislav Kniazev.

Ce qui suit a fonctionné; mais si vous utilisez un surligneur de syntaxe T4 (comme Tangible T4), vous trouverez que cela accentue la surbrillance.

< # @ extension sortie = "\ n" #>

Je trouve que le réglage de l'extension à quelque chose qui est pas un omble chevalier comme d'échappement ceci:

< # @ extension de sortie = "" #>

puis dans la section de code en définissant par programme l'extension de fichier, comme ceci:

Host.SetFileExtension ("\ n");

La mise en surbrillance T4 est ensuite restaurée.

Questions connexes