T4テンプレート出力を既存のファイルとマージすることは可能ですか?
たとえば、T4テンプレートがローカリゼーションリソースXMLファイルを生成する場合、それらを既存のリソースファイルにマージすることは可能ですか?
T4テンプレート出力を既存のファイルとマージすることは可能ですか?
たとえば、T4テンプレートがローカリゼーションリソースXMLファイルを生成する場合、それらを既存のリソースファイルにマージすることは可能ですか?
T4がGenerationEnvironmentプロパティを考慮して使用する、基盤となる文字列ビルダーにアクセスできます。したがって、T4に次のようなものを追加することで、実行可能なソリューションを得ることができるはずです。
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<#@ Import Namespace="System.IO" #>
Line #<#= rand.Next(0, 100).ToString() #>
<# AppendFile(@"C:\Development\PodCastSync\test\test.txt"); #>
<#+
Random rand = new Random();
private void AppendFile(string filename)
{
File.AppendAllText(filename, GenerationEnvironment.ToString());
}
#>
デフォルトのバッキングファイルの更新を停止したい場合は、コンテンツを保存した後にGenerationEnvironmentを新しい文字列ビルダーに設定して、出力を停止することができます。