T4 テンプレート - インクルードされたファイルからの空行を避ける 質問する

T4 テンプレート - インクルードされたファイルからの空行を避ける 質問する

モジュール性と再利用性のために T4 コードを別々のファイルに分割していますが、各ファイルごとに出力に空行が 1 行必要になることがわかりました。例:

<#@ 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 ファイルに分割すると、この空白スペースは増え続けます。実際、すべてのインクルード ファイルを 1 つの Includes.tt にまとめ、空白行が 1 行だけになることを期待しました。しかし、そうはなりませんでした。Includes.tt にリストされているファイルごとに、空白行が 1 行ずつ表示されます。これを回避する方法はありますか?

編集: 私が単なる愚かなミスを犯しているのではないとして (そうであることを心から願っています)、問題は一見したほど些細なものではありません。

a) 組み込まれた T4 ファイルによる再利用とモジュール性は T4 自体と同じくらい古く、最新の MSDN マガジンの記事「T4 コード生成ソリューションの複雑さの管理」でも言及されています。

b) コードが自動生成される場合、それが不適切なフォーマットであったり、読みにくかったりしても問題ないということではありません。

c) 現在の解決策では、私の場合、それぞれ生成された .cs ファイルでは、生成されたテキストが表示されるまで、読者は 1 つの空白ページをスクロールする必要があります。これはすべて、コード生成を複数の .tt ファイルに分割したためです。これは正しくないように思えます。

ベストアンサー1

Tony の回答に追加します: 次のように T4 括弧内に改行を追加することで、非常に長い行を回避できます。

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".ttinclude" #>
<#@ Import Namespace="System.Collections.Generic" #>
<#@ Include file="Usings.tt" 
#><#@ Include file="PropertyTypeEnum.tt" 
#><#@ Include....
#><#@ Include....
#><#@ Include....
#><#@ some other stuff 

おすすめ記事