Je travaille sur mon premier outil de génération de code T4 pour ajouter du code auxiliaire de procédure stockée à mon projet. J'ai créé des types personnalisés (par exemple StoredProcedure
et StoredProcedureParameter
pour aider à ma génération de code et inclus l'assemblage et de références espace de noms dans mon code:Utilisation de types dans un modèle T4 qui existent dans le même projet que le modèle
<#@ template debug="false" hostspecific="false" language="VB" #>
<#@ output extension=".generated.vb" #>
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="StoredProcCodeGenerator" #>
Cela me permet d'utiliser mes types personnalisés dans mon code de modèle T4. Toutefois, étant donné que mes types personnalisés existent dans le même projet que le code du modèle T4, je ne peux pas recompiler mon projet une fois que j'ai exécuté le code du modèle sans redémarrer Visual Studio. great article qui résout ce problème en utilisant la boîte à outils T4, mais cela ne fonctionne pas.Si j'implémente la directive VolatileAssembly
ou la boîte à outils T4 mply ne s'est pas installé. Je ne suis pas sûr que la boîte à outils a été installée correctement (j'utilise VS 2010 sur Win XP).
De quelles façons pourrais-je résoudre ce problème?
Je ne comprends pas. Dans VS2010, j'utilise des modèles T4 tout le temps, y compris en utilisant des types qui sont dans le même projet que le modèle, et cela fonctionne très bien et réexécute le modèle chaque fois que j'enregistre - comme je m'y attendais. –
@Kirk Je ne me suis pas rendu compte que je devais supprimer '<# @ assembly name =" $ (TargetPath) "#>' avant d'ajouter '<# @ VolatileAssembly ...'. J'ai ajouté une réponse pour l'expliquer. –
quelqu'un peut-il éditer le titre pour dire le modèle au lieu de tempérer près du début? – Maslow