我在我的主程序集PocoGenerator
中的测试仪类中有以下代码。该程序集应该使用T4模板来生成基于引用程序集(项目参考)中的L2S实体的POCO,DataObjects
。无法在T4模板中引用程序集
var assemblyName = "DataObjects";
var dataObjects = AppDomain.CurrentDomain.Load(new AssemblyName(assemblyName));
尝试尽我所能,我不能得到T4来查找DataObjects程序集。我曾尝试过各种形式的assembly
指令,如:
<#@ assembly name="DataObjects" #>
<#@ assembly name="DataObjects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" #>
无济于事。上面的代码在测试程序类中工作,但不在模板中。我究竟做错了什么?
新增: 我以向大会机器人的地方,我引用它的绝对路径解决了这个问题,该指令以及类的功能块,即
<#@ assembly name="C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll" #>
和
var sourceAssembly = Assembly.LoadFile(@"C:\Development\PocoGenerator\DataObjects\bin\Debug\DataObjects.dll");
但我真的不喜欢这个,因为我想在各种项目中使用这个模板,而我只是很讨厌重复,尤其是魔术字符串。
你的模板项目应该有一个项目引用您的依赖关系的项目。上面的“汇编”标签看起来不错。你也应该有一个“导入”参考。你得到了什么确切的错误信息? (和AppDomain的东西是什么?你不应该这样做) – 2010-08-08 16:58:21
AppDomain的东西是tp使我能够迭代当前AppDomain中加载的程序集之一中的所有类型。它与引用模板本身的程序集无关。 – ProfK 2010-08-08 17:22:32
是的,我现在看到。你收到了什么确切的错误信息? – 2010-08-08 18:54:59