如何从T4中获取项目目录?

时间:2010-12-30 08:18:18

标签: .net mono t4

我一直在搞乱Mono中的T4支持并注意到一件非常麻烦的事情。运行T4模板时的当前目录是主目录。我需要能够从当前项目的目录中读取一些文件,但我不知道如何。

<#@ template language="C#v3.5" #>
<#@ output extension="txt" #>

<#=System.IO.Directory.GetCurrentDirectory() #>

产量

/home/earlz

我想让它产生类似

的东西
/home/earlz/MyProject

我如何克服这个问题?

另外,我尝试了hostspecific和Host.ResolvePath,但是我得到了一个N​​otImplementedException

2 个答案:

答案 0 :(得分:7)

好的,我想我已经明白了。你只需要自己实际解决路径。要获取模板文件的目录(这对我来说足够好),只需使用:

<#= System.IO.Path.GetDirectoryName(Host.TemplateFile) #>

答案 1 :(得分:1)

fixed ResolvePath之后older question以及other improvementsbuilding from master。修复程序应该在MonoDevelop 2.6中,但您可以尝试{{3}}。