2017-05-04 3 views
0

私の全体的な目標は、ソリューションビルドの最後にすべての警告を読み込み、エラーとしてログに記録することです。これは、警告を受けたプロジェクトのバイナリも作成する必要があるため、TreatWarningsAsErrors設定とは異なります。MSBuildタスクでは、ビルドによって生成されたすべての警告にどのようにアクセスできますか?

カスタムMSBuildタスクでこれを解決することを期待していますが、ターゲットファイルから渡す必要があるかどうかわかりません。

EDIT:特定の文字列のログを解析し、その特定のコードに対してエラーを発行するため、これはthis questionと重複しているとは思われません。その内容に関係なく、ビルド中のすべての警告のリストを取得したい。

+0

[MSB3245(参照を解決できませんでした)警告をエラーとして処理するにはどうすればよいですか?](http://stackoverflow.com/questions/17495278/how-can-i-treat-msb3245-could-not -resolve-reference-as-an-error)を指定します。質問は多少違って見えますが、結局は同じです:構築中にロガーが発する警告にどのように対処するか。 – stijn

+0

stjin - それは役に立つかもしれませんが、私は特定の警告を捕まえたくありません。私はすべての警告をキャッチしたい。それらは異なる形式で提供される可能性があるため、直接ログ解析では十分ではないかもしれません。私はそれを試してみましょう。 – Dahud

+0

私が知っている限り、MSツールによって出されるすべての警告は大文字と小文字を区別しない警告[^:] +: 'regexとマッチする必要があります。また、他のツールは、メッセージがresに沿って動作するようにしたい場合、同じ規約に従う方がよいでしょう。 – stijn

答えて

0

この情報にアクセスできないため、タスク内からビルド警告を受け取ることはできません。警告が発生し、MSビルドのロギングインフラストラクチャに送信され、そこで処理されますが、これはタスクの実行とは完全に離婚しています。

ただし、ビルドによって生成された警告を追跡するカスタムロガーを作成することはできます。 カスタムロガーを使用すると、警告イベントが発生したときはいつでもそのイベントを記録し、ビルドが完了したらその情報で必要なものを実行できます。

カスタムロガーの作成方法については、herehereのマニュアルを参照してください。

関連する問題