使用T4获取项目或相对目录

时间:2009-08-29 22:43:00

标签: visual-studio visual-studio-2008 file-io code-generation t4

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

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

2 个答案:

答案 0 :(得分:87)

请参阅主机特定参数部分HERE

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

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

答案 1 :(得分:2)

你可以像这样抓住路径

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