Re: T4 и путь к XML-файлу, включенному в проект
От: _FRED_ Черногория
Дата: 31.10.10 14:57
Оценка: 2 (1) +1
Здравствуйте, stomsky, Вы писали:

S>Недавно открыл для себя кодогенератор T4.

S>А вот здесь
Автор: Lloyd
Дата: 13.12.08
, например, рекомендуют использовать его вкупе с 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[3]: T4 и путь к XML-файлу, включенному в проект
От: _FRED_ Черногория
Дата: 31.10.10 21:15
Оценка: +1
Здравствуйте, IT, Вы писали:

A>>Можете использовать $(ProjectDir) или $(SolutionDir)

A>>Это будет работать только в Visual Studio.

IT>Можно пример использования?


Можно использовать в директивах и работать будет везде.
Help will always be given at Hogwarts to those who ask for it.
T4 и путь к XML-файлу, включенному в проект
От: stomsky Россия  
Дата: 31.10.10 13:58
Оценка:
Привет всем!
Недавно открыл для себя кодогенератор T4.
А вот здесь
Автор: Lloyd
Дата: 13.12.08
, например, рекомендуют использовать его вкупе с XML-файлом.
Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать?
Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается...
Как быть?
Красота — наивысшая степень целесообразности. (c) И. Ефремов
Re: T4 и путь к XML-файлу, включенному в проект
От: adontz Грузия http://adontz.wordpress.com/
Дата: 31.10.10 14:00
Оценка:
Здравствуйте, stomsky, Вы писали:

Можете использовать $(ProjectDir) или $(SolutionDir)

Это будет работать только в Visual Studio.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: T4 и путь к XML-файлу, включенному в проект
От: Lloyd Россия  
Дата: 31.10.10 14:07
Оценка:
Здравствуйте, stomsky, Вы писали:

S>Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать?

S>Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается...
S>Как быть?

Я передаю относительный путь.
Re[2]: T4 и путь к XML-файлу, включенному в проект
От: IT Россия linq2db.com
Дата: 31.10.10 20:46
Оценка:
Здравствуйте, adontz, Вы писали:

A>Можете использовать $(ProjectDir) или $(SolutionDir)

A>Это будет работать только в Visual Studio.

Можно пример использования?
Если нам не помогут, то мы тоже никого не пощадим.
Re: T4 и путь к XML-файлу, включенному в проект
От: _FRED_ Черногория
Дата: 31.10.10 21:30
Оценка:
Здравствуйте, stomsky, Вы писали:

S>Недавно открыл для себя кодогенератор T4.

S>А вот здесь
Автор: Lloyd
Дата: 13.12.08
, например, рекомендуют использовать его вкупе с XML-файлом.

S>Идея мне нравится, но вот вопрос: включаю я в свой проект Xml-файл, а как его содержимое кодогенератору передать?
S>Полный путь к файлу в *.tt-файле прописать? А на другом компе у меня проект, вместе с Xml-файлом по другому пути располагается...
S>Как быть?

Хотя, правильнее всего, вызывать Host.ResolvePath("<RelativePath>"); (здесь). Какой-нить кастомный хост может, конечно, резолвить относительно того, чево ему вздумается, но дефолтовый резолвит относительно папки с файлом шаблона. Дефолтовый, кстати, если файл не найдён, бросит исключение. Во многих случаях это именно то, что нужно.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.