我在 Visual Studio 2010 中使用 T4,我想遍历我的解决方案中的文件,但是我发现 T4 源代码生成在一种沙箱中工作,并且当前工作目录在 Visual程序文件中的 Studio 10 目录。
有没有一种方法可以相对论地引用 T4 文件所在的解决方案,这样它就不会破坏构建,或者在其他人的没有相同文件结构的盒子上工作等等?
谢谢
最佳答案
您必须像这样将 hostspecific
属性设置为 true:
<#@ template language="C#" hostspecific="True" #>
ITextTemplatingEngineHost
界面将为您提供所需的信息。
<#= this.Host.ResolveParameterValue("-", "-", "projects") #>
我认为没有办法引用该解决方案,但您可以获取 *.tt
文件所在的路径,并从那里获取其他文件。
要从相对于文本模板的位置加载文件,您可以使用:
this.Host.ResolvePath("relative/path.txt")
关于c# - T4 获取解决方案的当前工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952825/