2017-01-27 24 views
0

Я использую T4 для преобразования h-файла из нашей встроенной библиотеки в файл C#. Это отлично работает, но я хотел бы предоставить относительную ссылку на файл. До сих пор это все, что я смог придумать:T4 Относительный путь Ссылка

s = Path.GetDirectoryName(Host.ResolvePath("thisFile.tt")) + @"\..\foo\bar.h"; 

Было бы хорошо, если бы я мог включить bar.h в проекте и изменить действие сборки на «None», а затем упростить:

s = Host.ResolvePath("bar.h"); 

Но это вызывает ошибку, и, насколько я могу судить, вы можете только ResolvePath для файлов в том же каталоге, что и скрипт T4.

У кого-нибудь есть лучший способ?

ответ

0

Поскольку bar.h находится в другой папке, вы должны указать ему относительный путь. Таким образом, вы могли бы сделать

s = Host.ResolvePath(@"..\foo\bar.h"); 

Ответ можно найти на https://msdn.microsoft.com/en-us/library/gg604090(v=vs.100).aspx

Чтобы найти полный путь к файлу относительно текстового шаблона, используйте this.Host.ResolvePath().