我在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/