2017-09-06 5 views
0

それでは、他のコンパイルエラーの間でエラーリストにコンパイルエラーとして表示されるでしょうT4でカスタムビルドエラーを出すことはできますか?

<# 
GiveError("Something is not right"); 
#> 

のようなもの。これは、ターゲットファイル内のErrorGeneratingOutputメッセージでただ終了するのではなく、何が起こっているのかに関するより具体的な情報をプログラマーに提供するのに役立ちます。

+0

私はT4を一度も使用していませんでしたが、C#であるため、 "throw new Exception(" Error ");" – Noren

+0

@Noren:それはコンパイルエラーではありません。 –

+0

'#error'プラグマを使ってコンパイルしないコードを生成することができます。世代を完全に停止することと全く同じではありません。 (私はあなたが探しているか分からない...) –

答えて

2

例えば

、私は特にT4世代について何も知らないので、私は有益なメッセージを生成プロセスを停止させるという点で助けることはできませんが、それだけで #errorプラグマを生成する方が良いでしょうかもしれません
#error No configuration found for X 

理想的には残りのファイルは有効である(またはエラーレポートが多い)ので、レポートするエラーだけで終わることが理想的です。

このような停止の利点の1つは、修正する複数の問題がある場合、開発者はそれらをすべて1回で修正できる可能性があるということです。欠点は、(何を生成しているかによっては)単一の構成上の問題が何千ものエラーを引き起こす可能性があるということです。

関連する問題