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

Visual studio 使用T4获取项目或相对目录,visual-studio,visual-studio-2008,file-io,code-generation,t4,Visual Studio,Visual Studio 2008,File Io,Code Generation,T4,如何从t4模板中获取对visual studio项目或解决方案目录或t4模板目录的引用 我有一个模板,它将多个文件连接在一起,这些文件位于相对于模板的位置。我需要通过一个相对的方法得到一个绝对位置的参考。硬编码绝对路径是不可接受的,因为VisualStudio项目并不总是位于同一位置,这将中断代码生成。从环境中读取当前工作目录也不起作用,因为这会返回T4引擎所在的位置,而不是模板。我刚刚进入t4,因此非常感谢您的帮助。请参阅主机特定参数部分 此代码段显示了如何获取src相对于模板的完整路径 &l

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


我有一个模板,它将多个文件连接在一起,这些文件位于相对于模板的位置。我需要通过一个相对的方法得到一个绝对位置的参考。硬编码绝对路径是不可接受的,因为VisualStudio项目并不总是位于同一位置,这将中断代码生成。从环境中读取当前工作目录也不起作用,因为这会返回T4引擎所在的位置,而不是模板。我刚刚进入t4,因此非常感谢您的帮助。

请参阅主机特定参数部分

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

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

//src文件夹相对于t4模板的位置:
// 

您也可以像这样抓取路径

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

还需要导入路径的命名空间: