19

ビルド時に、メッセージを警告として分類せずにビルド出力ウィンドウに出力できるようにしたいと考えています。つまり、Visual Studio のエラー リストでは、「メッセージ」フィルターがオンになっている場合にのみ表示されるようにしたいと思います。

だから、私は同じ機能を望んで #warning Warning Message いますが、それを警告として分類したくありません。

環境:

現在、多くの警告を生成する多くのプロジェクトがあります。最初にやりたいことは、新しい警告が導入されるのを防ぐことです。だから、私は:

  1. 「エラーとしての警告」をオンにしました
  2. #pragma warning disable/restore既存の警告を排除するために使用されます。

ただし、無効にした警告については、調査が必要な警告がここにあることを示すメッセージを出力したいと思います (これらの警告に対して何をする必要があるかをまだ調査していないため)。たとえば、警告の多くは「廃止された」タイプの警告であり、ある時点で何らかの作業を行う必要があります。だから、私はこれらの警告が消えてほしくありません。

理想的には、次のようにします。

#pragma warning disable 0618
#message Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618

私は、この問題に対処するための他のアプローチを受け入れます。

4

3 に答える 3

8

MSDN によると、拡張できません#pragma: http://msdn.microsoft.com/en-us/library/x74w198a.aspx

しかし、ErrorList が厳密な要件でない場合は、これを回避できます。コメントを使用して、重要なことを強調することができます。コメントの先頭に特別なトークンを追加すると、TaskList ウィンドウで追跡できます。
したがって、コードは次のようになります。

#pragma warning disable 0618
//TODO: Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618

その後、[表示] -> [タスク リスト] -> ドロップダウンで [コメント] を選択すると、そこにコメントが表示されます。
TODO、HACK、および UNDONE の 3 つの定義済みトークンがあります。MESSAGE のような独自のトークンを追加し、その優先順位を変更して、コードを最初に期待したものと似たものにすることができます。

#pragma warning disable 0618
//MESSAGE: Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618

トークンの詳細については、http: //msdn.microsoft.com/en-us/library/zce12xx2 (v=vs.100).aspx を参照してください。

Resharper を使用する場合、TODO 用の別のツールがあることに注意してください。ここにあります: ReSharper -> Tools -> To-do Items

于 2012-12-20T18:30:29.823 に答える
3

csc タスクの WarningsNotAsErrorsパラメータを確認する必要があります。「許容可能な」警告のリストがこのパラメーターに指定され、TreatWarningsAsErrors=true が指定されている場合、既存の警告はログに記録され、新しい警告はエラーとして表示されます。

もちろん、これは正確に既存の警告と新しい警告ではありませんが、そのままにしておくことに慣れている正確な警告番号で作業する方法です.

しかし、私の最初の提案は、これらを修正することです。ビルドの外部に隠されると、それらが対処されることはめったにありません。

于 2012-12-23T05:41:02.927 に答える
2

Visual Studio の「Premium」または「Ultimate」エディションを使用している場合、Rule Set を使用したコード分析機能があります。

どのプロジェクトでも、右クリックしてプロパティに移動し、[コード分析] タブを選択すると、警告をエラーとして扱い、警告の一部を無効にするなど、すぐに使用できるさまざまな設定があります。

警告を無視するか、エラーとして処理するように構成できます。すぐに使用できる Microsoft ルール セットを使用することも、要件に応じてカスタム ルールセットを作成することもできます (これはそれほど難しくなく、私の要件には適していました)。

マネージド コードのコード分析を有効にするには:

  1. ソリューション エクスプローラーでプロジェクトを選択します。
  2. [プロジェクト] メニューの [プロパティ] をクリックします。
  3. [コード分析] をクリックします。
  4. [ビルド時にコード分析を有効にする] を選択します (CODE_ANALYSIS 定数を定義します)。

コード分​​析の構成の詳細については、 http ://seesharper.wordpress.com/2010/04/02/code-analysis-in-team-build-2010/ にアクセスしてください。

カスタム ルールセットを作成する場合:

http://msdn.microsoft.com/en-us/library/dd264974.aspx

http://blogs.msdn.com/b/codeanalysis/archive/2010/03/26/how-to-write-custom-static-code-analysis-rules-and-integrate-them-into-visual-studio- 2010.aspx

ルールセットとコード分析について学習するには:

http://msdn.microsoft.com/en-us/library/dd264996.aspx

于 2012-12-26T07:13:48.437 に答える