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