Как развернуть файлы включения T4 с пакетом NuGet - PullRequest
3 голосов
/ 06 декабря 2011

У меня есть несколько включаемых файлов T4, которые я хочу использовать в нескольких проектах. Поэтому я создал пакет NuGet и поместил файлы в папку «Инструменты» пакета. Теперь они установлены в папке packages \ PackageName.x.x.x \ Tools, и я могу добавить директиву include в мои файлы T4 в проекте. Но недостатком этого является то, что в пути есть номер версии, который будет меняться при создании новых версий пакета. Это потребует от меня обновления всех директив include в проекте Кто-нибудь знает намек на хороший подход к этому?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2013

Директива include T4 не распознает свойства msbuild, но ассемблерная. Таким образом, вы можете использовать базовый класс шаблона и ссылаться на сборку из вашего пакета NuGet.

С NuGet 2.5 (возможно, недоступной на момент публикации) вы можете создать файл msbuild .props. Назначение $ (MSBuildThisFileDirectory) объединяет относительный путь к сборке с новым свойством msbuild. Новое свойство может затем использоваться в шаблоне проектов T4, использующих пакет NuGet.

2 голосов
/ 07 декабря 2011

Если предполагается, что эти шаблоны T4 генерируют код внутри библиотек, вы можете поместить их в каталог содержимого.

Они будут добавлены в библиотеку, имеющую ссылку на пакет nuget. Так что переименуйте инструменты в контент (или добавьте новую папку контента) и у вас все будет хорошо. Вы также можете добавить подпапки в эту папку. Или поместите туда файлы .cs.

См .: http://docs.nuget.org/docs/reference/nuspec-reference

...