, например, рекомендуют использовать его вкупе с XML-файлом.
Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать?
Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается...
Как быть?
Красота — наивысшая степень целесообразности. (c) И. Ефремов
Здравствуйте, stomsky, Вы писали:
S>Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать? S>Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается... S>Как быть?
, например, рекомендуют использовать его вкупе с XML-файлом. S>Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать? S>Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается... S>Как быть?
<#@ template language="C#" hostspecific="True" #>
…
// <autogenerated>
// This file was generated using <#= System.IO.Path.GetFileName(Host.TemplateFile) #>.
// Any changes made manually will be lost next time the file is regenerated.
// </autogenerated>
Будет доступен Host со свойством TemplateFile — в котором хранится путь к текущему файлу шаблона. Остальные пути можно задавать относительно пути к шаблону.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: T4 и путь к XML-файлу, включенному в проект
Здравствуйте, IT, Вы писали:
A>>Можете использовать $(ProjectDir) или $(SolutionDir) A>>Это будет работать только в Visual Studio.
IT>Можно пример использования?
Можно использовать в директивах и работать будет везде.
Help will always be given at Hogwarts to those who ask for it.
, например, рекомендуют использовать его вкупе с XML-файлом. S>Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать? S>Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается... S>Как быть?
Хотя, правильнее всего, вызывать Host.ResolvePath("<RelativePath>"); (здесь). Какой-нить кастомный хост может, конечно, резолвить относительно того, чево ему вздумается, но дефолтовый резолвит относительно папки с файлом шаблона. Дефолтовый, кстати, если файл не найдён, бросит исключение. Во многих случаях это именно то, что нужно.
Help will always be given at Hogwarts to those who ask for it.