我想使用T4根据检查与执行模板文件相关的目录中的文件生成一些代码。
在C#中有没有一种方法可以识别当前模板文件的路径?
<#@ template
指令的hostspecific="true"
属性设置为True
。Host
,它可以让你访问ResolvePath
方法和TemplateFile
属性。
Host
是ITextTemplatingEngineHost
类型的。TemplateFile
是String
值,通常是.tt
文件的文件系统路径 - 但其他T4主机(即非Visual Studio的主机)可能会将加载到内存中或以其他方式加载的T4文件返回一些其他值作为模板文件不存在于磁盘上。例如:
<#@ 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 #>