47

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

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

4

2 回答 2

90

请参阅此处的主机特定参数部分。

此片段显示如何获取 src 相对于模板的完整路径。

<#@ template hostspecific="true" #>
// The location of the src folder relative to the t4 template:
// <#= Host.ResolvePath("src") #>
于 2009-08-30T03:24:31.373 回答
5

你也可以像这样抓住路径

<#@ template hostspecific="true" #>
<#= Path.GetDirectoryName(this.Host.TemplateFile) #>
于 2017-03-25T18:57:17.310 回答