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

Bla*_*lor 47 file-io t4 code-generation visual-studio-2008 visual-studio

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

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

Bla*_*lor 88

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

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

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


joh*_*y 5 5

你也可以像这样抓住路径

<#@ template hostspecific="true" #>
<#= Path.GetDirectoryName(this.Host.TemplateFile) #>
Run Code Online (Sandbox Code Playgroud)

  • 还需要导入 Path 的命名空间: `&lt;#@ import namespace="System.IO" #&gt;` (3认同)