我正在修改一个T4模板,它在我的输出顶部(一个.cs文件)产生大量空行有很大的影响,因为我的.tt文件中包含以下.ttinclude,哪些导入像这样的很多组件,每个都关闭#>标记超出宏范围并返回文字模板文本范围:
<#@ template language="C#" hostspecific="True" debug="True" #>
<#@ assembly name="EnvDTE" #>
<#@ assembly name="System.Core.dll" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Configuration" #>
<#@ assembly name="System.Windows.Forms" #>
<#@ assembly name="FirebirdSql.Data.FirebirdClient" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="FirebirdSql.Data.FirebirdClient" #>
<#@ import namespace="System.Data.Common" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Globalization" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ import namespace="System.Configuration" #>
<#@ import namespace="System.Windows.Forms" #>
<#@ import namespace="Microsoft.VisualStudio.TextTemplating" #>
<#+
#pragma warning disable 0162
我通过上面的方法将22行愚蠢的空格注入我的输出.cs文件中。我尝试将汇编语句和import语句组合到一个<#@ #>
部分但不“编译”,T4在没有任何错误的情况下死掉:
<#@ assembly name="EnvDTE"
assembly name="System.Core.dll" #>
请注意以下工作:
<#@ assembly name="EnvDTE" assembly name="System.Core.dll" #>
所以我可以选择无法使用的指令列表或无法模板输出的空白白线。
还有另一种方式吗?这是我在模板/预处理器工具中见过的最烦人的缺陷。