Get Project or Relative Directory with T4
Asked Answered
G

2

50

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.

Gorizia answered 29/8, 2009 at 22:43 Comment(0)
G
91

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") #>
Gorizia answered 30/8, 2009 at 3:24 Comment(0)
C
5

You can grab the path like this aswell

<#@ template hostspecific="true" #>
<#= Path.GetDirectoryName(this.Host.TemplateFile) #>
Coenobite answered 25/3, 2017 at 18:57 Comment(1)
importing namespace of Path is needed too: <#@ import namespace="System.IO" #>Lavella

© 2022 - 2024 — McMap. All rights reserved.