c# - T4 获取解决方案的当前工作目录

标签 c# visual-studio code-generation t4

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

相关文章:

c# - 调用 REST 的最简单方法

c# - 如何使 C# 窗体镜像?

c# - 一个大字节缓冲区还是几个小字节缓冲区?

c# - 发送电子邮件的代码

visual-studio - Visual Studio 2015 缺少 'Add Fakes...' 选项

visual-studio - 使用输入文件进行单元测试

java - Eclipse代码生成器生成mapper类

code-generation - x86指令编码表

assembly - LLVM 中的 getOpcode 是什么?

C#:包装方法调用的优雅方式