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

10-16 04:33