Ne peut pas faire référence à un assembly dans un modèle T4

J'ai le code suivant dans un testeur de classe dans mon assemblage principal, PocoGenerator. Cette assemblée est censé utiliser un modèle T4 générer POCO est basé sur L2S entités référencées à l'assemblée un projet de référence), DataObjects.

var assemblyName = "DataObjects";
var dataObjects = AppDomain.CurrentDomain.Load(new AssemblyName(assemblyName));

Essayez comme je peut, je ne peux pas obtenir T4 de trouver le DataObjects de l'assemblée. J'ai essayé diverses formes de assembly directives, comme:

<#@ assembly name="DataObjects" #>
<#@ assembly name="DataObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" #>

en vain. Le code ci-dessus fonctionne le testeur de classe, mais pas dans le modèle. Ce que je fais mal?

AJOUTÉ:
J'ai résolu ce problème en utilisant le chemin d'accès absolu à l'assemblée bot dans des endroits que je référence, la directive ainsi que la caractéristique de la classe bloc, c'est à dire

<#@ assembly name="C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll" #>

et

var sourceAssembly = Assembly.LoadFile(@"C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll");

Mais je n'aime vraiment pas, je voudrais utiliser ce modèle dans différents projets, et je viens de la plaine de la haine de la duplication, en particulier de la magie des cordes.

  • Votre modèle de projet doit avoir une référence de projet pour le projet que vous avez une dépendance. Votre "assemblée" tag ci-dessus ressemble à droite. Et vous devriez également avoir une "importation" de référence ainsi. Ce message d'erreur exact êtes-vous? (et c'est quoi le domaine d'application des trucs? vous ne devriez pas avoir à faire quelque chose comme ça)
  • Le domaine d'application les trucs de tp me permettent d'itérer tous les types dans l'une des assemblées chargées dans le courant de l'AppDomain. Il n'a rien à voir avec le référencement de l'assemblée pour le modèle lui-même.
  • Oui, je vois maintenant. Et ce message d'erreur exact recevez-vous?
  • veuillez voir mon dernier edit.
InformationsquelleAutor ProfK | 2010-08-08