我一直在搞乱Mono中的T4支持,并注意到一件非常麻烦的事情.运行T4模板时的当前目录是主目录.我需要能够从当前项目的目录中读取一些文件,但我不知道如何.
<#@ template language="C#v3.5" #>
<#@ output extension="txt" #>
<#=System.IO.Directory.GetCurrentDirectory() #>
Run Code Online (Sandbox Code Playgroud)
产量
/home/earlz
Run Code Online (Sandbox Code Playgroud)
在哪里,我希望它产生类似的东西
/home/earlz/MyProject
Run Code Online (Sandbox Code Playgroud)
我该如何克服这个问题?
此外,我尝试了hostspecific和Host.ResolvePath,但我得到了一个NotImplementedException
好吧,我想我已经弄明白了.你只需要自己实际解决路径.要获取模板文件的目录(这对我来说足够好),只需使用:
<#= System.IO.Path.GetDirectoryName(Host.TemplateFile) #>
Run Code Online (Sandbox Code Playgroud)