我一直在搞乱Mono中的T4支持并注意到一件非常麻烦的事情。运行T4模板时的当前目录是主目录。我需要能够从当前项目的目录中读取一些文件,但我不知道如何。
<#@ template language="C#v3.5" #>
<#@ output extension="txt" #>
<#=System.IO.Directory.GetCurrentDirectory() #>
产量
/home/earlz
我想让它产生类似
的东西/home/earlz/MyProject
我如何克服这个问题?
另外,我尝试了hostspecific和Host.ResolvePath,但是我得到了一个NotImplementedException
答案 0 :(得分:7)
好的,我想我已经明白了。你只需要自己实际解决路径。要获取模板文件的目录(这对我来说足够好),只需使用:
<#= System.IO.Path.GetDirectoryName(Host.TemplateFile) #>
答案 1 :(得分:1)
我fixed ResolvePath之后older question以及other improvements吨building from master。修复程序应该在MonoDevelop 2.6中,但您可以尝试{{3}}。