2009-08-29 25 views
47

如何從t4模板中獲取對Visual Studio項目或解決方案目錄或t4模板目錄的引用?使用T4獲取項目或相關目錄

我有一個模板,將多個文件連接在一起,這些文件位於相對於模板的位置。我需要通過相對的方式來獲得絕對位置的參考。硬編碼絕對路徑是不可接受的,因爲Visual Studio項目不會總是在相同的位置,這會破壞代碼生成。從環境中讀取當前工作目錄不起作用,因爲它返回T4引擎所在的位置而不是模板。我只是進入t4,所以任何幫助將不勝感激。

回答

84

參見主機特定參數部分HERE

這段代碼展示瞭如何獲取相對於模板的src的完整路徑。

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

你可以抓住這樣藏漢路徑

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