Да, вы можете.Сначала определите процедуру сохранения в включаемом файле T4.
SaveOutput.tt :
<#@ template language=“C#” hostspecific=“true” #>
<#@ import namespace=“System.IO” #>
<#+
void SaveOutput(string fileName)
{
string templateDirectory = Path.GetDirectoryName(Host.TemplateFile);
string outputFilePath = Path.Combine(templateDirectory, fileName);
File.WriteAllText(outputFilePath, this.GenerationEnvironment.ToString());
this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length);
}
#>
Теперь каждый раз, когда вы вызываете SaveOutput с именем файла, он будет записыватьтекущий буфер для этого внешнего файла.Например.
Web.tt :
<#@ include file=“SaveOutput.tt” #>
<#
GenerateConfig();
SaveOutput(”..\..\Web.Config”);
#>
Если вы хотите создать несколько файлов:
<#@ include file=“SaveOutput.tt” #>
<#
GenerateFile1();
SaveOutput(”..\..\File1.txt”);
GenerateFile2();
SaveOutput(”..\..\File2.txt”);
#>