У меня есть следующий код в классе тестера в моей основной сборке, PocoGenerator
. Предполагается, что эта сборка будет использовать шаблон T4 для генерации POCO на основе объектов L2S в ссылочной сборке (ссылка на проект), DataObjects
.
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");
Но мне действительно это не нравится, поскольку я хотел бы использовать этот шаблон в различных проектах, и я просто ненавижу дублирование, особенно магических строк.