代码之家  ›  专栏  ›  技术社区  ›  Blake Taylor

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

  •  47
  • Blake Taylor  · 技术社区  · 17 年前

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

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

    2 回复  |  直到 17 年前
        1
  •  90
  •   House    9 年前

    见 宿主特定参数 HERE .

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

    <#@ template hostspecific="true" #>
    // The location of the src folder relative to the t4 template:
    // <#= Host.ResolvePath("src") #>
    
        2
  •  4
  •   johnny 5    9 年前

    你也可以像这样抓住这条路

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