在T4中获取.tt文件的位置

9

我想使用T4根据检查与执行模板文件相关的目录中的文件生成一些代码。

在C#中有没有一种方法可以识别当前模板文件的路径?

1个回答

20

例如:

<#@ template hostspecific="true" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="Microsoft.VisualStudio.TextTemplating" #>
<#
    ITextTemplatingEngineHost t4Host = this.Host;
    FileInfo t4FileInfo = new FileInfo( t4Host.TemplateFile );
#>

// This file generated by <#= t4FileInfo.FullName #>


你好,我想问一下你的代码是否仍然(在2015年)是唯一存在的解决方案。我发现了一个更简单且在运行时功能良好的代码片段[var namespaceName = System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("NamespaceHint") as string;],但是这段代码在调试T4模板时不起作用(在VS 2012中测试过)。 - user2126375
我很困惑,不知道这比设置hostspecific标志更简单...虽然有许多可能的解决方案,但启用Host属性可以为您提供许多功能,以简化输出文件管理。 - Chris Schaller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接