Ссылка на блок в шаблоне T4

Это было некоторое время, так как я в последний раз использовал T4, и это - вероятно, глупый вопрос...

Действительно ли возможно сослаться на произвольный блок из шаблона?

Пример:

  • У меня есть класс, который я хотел бы использовать в Проекте X
  • Ссылки X.Test проекта X и содержат .tt файл

Я предполагаю, что следующее должно работать

<#@ assembly name="X" #>

Но я преуспеваю, следующая ошибка сохраните:

Компиляция преобразования: файл 'X' Метаданных не мог быть найден

Что я делаю неправильно?

(В случае, если любой заинтересовал: я пытаюсь автоматически генерировать конкретный тип тестов на основе некоторых метаданных, от которых я добираюсь X)

Обновление: похоже, что VS2010 повредил поведение разрешения блока, которое я ожидал. Из http://blogs.msdn.com/b/garethj/archive/2010/04/15/what-s-new-in-t4-in-visual-studio-2010.aspx:

Сборочный комплект T4 полностью разделяется от содержания сборочного комплекта проекта, чтобы не брать неправильные блоки, когда проект предназначается для предыдущих версий платформы. Блоки проекта больше не используются для разрешения шаблонных директив блока.

Есть ли какие-либо обходные решения помимо использования полных путей?

15
задан Diego Mijelshon 13 May 2013 в 22:00
поделиться

1 ответ

Вы можете использовать макропеременные VS, такие как $ (SolutionDir), в справочнике, начиная с VS2010. например

<#@ assembly name="$(SolutionDir)\Project1\bin\debug\Foo.dll" #>
25
ответ дан 1 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: