用T4获取项目或相关目录

如何从t4模板中获得对Visual Studio项目或解决scheme的目录或t4模板的目录的引用?

我有一个模板,将多个文件连接在一起,这些文件与模板相关。 我需要通过一个相对的方法来获得对绝对位置的引用。 硬编码的绝对path是不可接受的,因为Visual Studio项目不会总是在相同的位置,这将打破代码生成。 从环境中读取当前工作目录不起作用,因为它返回T4引擎所在的位置而不是模板。 我只是进入t4所以任何帮助,将不胜感激。

请参阅这里的主机特定参数部分。

这段代码展示了如何获得相对于模板的src的完整path。

<#@ template hostspecific="true" #> // The location of the src folder relative to the t4 template: // <#= Host.ResolvePath("src") #> 

你也可以像这样抓住path

 <#@ template hostspecific="true" #> <#= Path.GetDirectoryName(this.Host.TemplateFile) #>