你能编写很多@指令,如汇编,导入,模板而不在T4中发出模板输出吗?

时间:2015-09-11 21:06:46

标签: c# visual-studio t4

我正在修改一个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" #>

所以我可以选择无法使用的指令列表或无法模板输出的空白白线。

还有另一种方式吗?这是我在模板/预处理器工具中见过的最烦人的缺陷。

0 个答案:

没有答案
相关问题