我将 T4 代码拆分为单独的文件以实现模块化和重用,但我发现每个文件在输出中花费了我一个空行。例如:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".ttinclude" #>
<#@ Import Namespace="System.Collections.Generic" #>
<#@ Include file="Includes.tt" #>
namespace <#= NameSpace #>
{
如果 Includes.tt 列出了 3 个其他 *.tt 文件,我会在命名空间前得到 3 个空行。当我添加代码并将其拆分为单独的 *.tt 文件时,这个空白空间不断增长。事实上,我将所有的包含文件打包到一个单独的 Includes.tt 中,希望这将花费我一个空行。它没有。对于 Includes.tt 中列出的每个文件,我仍然得到一个空行。有没有办法避免这种情况?
编辑:假设我不只是犯了一个愚蠢的错误(我真诚地希望我是),这个问题并不像乍一看那样微不足道:
a) 通过包含的 T4 文件的重用和模块化与 T4 本身一样古老,并在最新的 MSDN 杂志文章中提到:“管理 T4 代码生成解决方案中的复杂性”。
b) 如果代码是自动生成的,这并不意味着它的格式错误或可读性差是可以的。
c)在我的情况下,对于当前的解决方案,对于每个生成的 .cs 文件,读者必须滚动一个空白页面,直到她开始看到一些生成的文本。这一切都是因为我在多个包含的 .tt 文件之间拆分了我的代码生成。这似乎不对。