Get Project or Relative Directory with T4

Blake Taylor picture Blake Taylor · Aug 30, 2009 · Viewed 14.4k times · Source

How can I get a reference to the directory of the visual studio project or solution or the directory of the t4 template from within a t4 template?

I have a template that concatenates a number of files together which are located relative to the template. I need to get a reference to there absolute location through a relative means. Hard coding an absolute path is not acceptable because the visual studio project will not always be in the same location and this would break the code generation. Reading the current working directory from the environment doesn't work either because that returns the location of where the T4 engine lives not the template. I'm just getting in to t4 so any help would be appreciated.

Answer

Blake Taylor picture Blake Taylor · Aug 30, 2009

See The Host Specific Parameter section HERE.

This snippet shows how to get the full path of src relative to the template.

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