T4 を使用して、実行中のテンプレート ファイルに関連するディレクトリにあるファイルを調べて、コードを生成したいと考えています。
c# で現在のテンプレート ファイルのパスを特定する方法はありますか?
hostspecific="true"
プロパティをに設定する必要があります。<#@ template
True
Host
にアクセスできるようになります。
ResolvePath
TemplateFile
Host
タイプITextTemplatingEngineHost
です。TemplateFile
はString
通常、ファイルのファイル システム パスである値です.tt
が、T4 ファイルをメモリ内にロードする可能性のある他の T4 ホスト (つまり、Visual Studio 以外のホスト) は、テンプレート ファイルがそうでないため、他の値を返す可能性があります。ディスク上に存在します。例えば:
<#@ 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 #>