Les modèles de T4 erreur: chargement du fichier à inclure ef.utilitaire.cs.ttinclude renvoyé une valeur null ou une chaîne vide
J'ai annulé le contrôleur de génération de modèles T4 (ControllerWithContext.tt
) comme décrit ici.
Je voudrais profiter de le code helper utilitaires trouvé dans EF.utility.CS.ttinclude
utilisés dans le POCO générateur de modèle modèle T4. Donc j'ai copié les lignes suivantes à partir de mon Model.tt
à mon ControllerWithContext.tt
.
<#@ include file="EF.Utility.CS.ttinclude"#>
Cependant, lorsque j'essaie d'ajouter un contrôleur, j'obtiens le message d'erreur
De charger le fichier include 'EF.utilitaire.CS.ttinclude " retourne une valeur null ou une chaîne vide
Selon la La documentation MSDN, cette erreur est parce que le fichier inclus est vide, ce n'est pas parce qu'il travaille avec Model.tt
La seule différence que je peux voir, c'est que le substituée ControllerWithContext.tt
ne dispose pas d'un Outil Personnalisé défini, alors que le Model.tt
a mis à TextTemplatingFileGenerator
.
Ma solution est de copier les fonctions dont j'ai besoin de ef.utility.cs.ttinclude
dans mon ControllerWithContext.tt
, qui lui-même a jeté plus d'erreurs, mais qui ont été facilement résolu.
Comment puis-je inclure des modèles T4 sans un outil personnalisé défini?
OriginalL'auteur Webbie4 | 2011-11-10
Vous devez vous connecter pour publier un commentaire.
Suivant @DustinDavis les conseils et l'aide de la valeur inestimable de l'information trouvée sur OlegSych du site, voici ce que j'ai fait:
Ajouté les références de projet
Pour cette dernière référence, j'ai dû installer la bonne version de Visual Studio SDK
<#@ import namespace="<name>" #>
àusing <name>;
<#+ #>
using Microsoft.VisualStudio.TextTemplating;
Étendue de la classe:
Remplacer la
TransformText
méthodeAjouté constructeur vide
Les prochaines étapes ont eu lieu dans le projet principal
- Edité le modèle T4 de fichier.
- Modèle modifié de la directive de
Ajoutée les directives
Qui signifie que je peux utiliser le helper trouvé en EF.Utilitaire.CS.ttinclude dans mes propres modèles de T4, et j'ai les moyens d'ajouter mes propres méthodes d'assistance qui seront disponibles pour tous les projets.
OriginalL'auteur Webbie4
Si vous avez Visual Studio 2012 ou 2013, installer cet outil EF pour résoudre l'erreur.
encore problème pour moi
OriginalL'auteur Palani Kumar
La réponse est que le modèle de processeur n'est même pas à essayer d'obtenir le fichier à inclure (comme l'a confirmé à l'aide de ProcMon). Vous pouvez reproduire ce à l'aide de n'importe quel modèle, et pas seulement de l'EF.Utilitaire.CS.ttinlcude
Ne savez pas pourquoi vous avez besoin du code, mais vous pouvez toujours concevoir votre propre classe de base, il suffit d'avoir hériter de Microsoft.VisualStudio.TextTemplating.TextTransformation et puis le mettre dans le code des thats est dans l'EF.Utilitaire fichier. Ensuite, réglez l'hérite de la directive pour pointer vers votre nouvelle classe de base et ensuite, vous pouvez accéder à ces méthodes à partir de votre modèle.
CodeGenerationTools
classe a trouvé enef.utility.cs.ttinclude
dans mes propres modèles de T4.Il suffit de suivre ce que j'ai proposé et vous pouvez tout simplement pas à l'aide d'un include (au moins pour l'instant, car il semble être cassé)
dites-vous que
<#@ include file="..." #>
tout simplement ne fonctionne pas?OriginalL'auteur Dustin Davis