« [HTML5] HTML4との相違点 日本語訳 | トップページ | [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました »

2011年8月24日 (水)

[VS2010] (続) オプション 「生成されたコードから結果を表示しない」 の挙動不審

Visual Studio 2008 では、 コード分析のオプション 「生成されたコードから結果を表示しない」 にチェックを入れても、 フォームやテンプレートでは、 コード分析のエラーや警告は抑制されません。 これは Visual Studio の不具合ではなく、 MSDN の翻訳ミスであることを以前に書きました。 → 「[VS2008] オプション 「生成されたコードから結果を表示しない」 の挙動不審

Visual Studio 2010 では、 どうなったでしょうか?
MSDN フォーラム で翻訳を修正しておきますよ~、 と回答していただいた通り、 MSDN のドキュメントは訂正されています。

方法: マネージ コード プロジェクトのコード分析を構成する
Visual Studio 2010

メモ
コード分析のエラーおよび警告がフォームやテンプレートで表示される場合、このオプションを使用しても、生成されたコードからこのエラーおよび警告の出力は抑制されません。 フォームまたはテンプレートのソース コードは表示することも保持することもできます。

※ あ、 「保持する」 は maintain の誤訳だけど、 分かるよね。そう思って、フォーラムで突っ込まなかった。まぁ、 「メンテする」 って日本語になってるし f(^^;

…これで終わりかというと。 WPF では Visual Studio の挙動が変わっていました。
Visual Studio 2010 で WPF のプロジェクトを作ると、 自動生成された MainWindow.g.cs には GeneratedCode 属性が付くようになりました。

[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {

これにより、 WPF 4 のフォーム (System.Windows.Window を継承したクラス) では、  「生成されたコードから結果を表示しない」 オプションを使うと、 エラーと警告の出力が抑制されることになります。
※ Connect で 「WPF:コード分析で余計なソースファイルが分析対象となる」 (2009/09/02) というレポートが上がっており、 それに対応した結果のようです。

またしても、 ドキュメントと実際がズレてしまいました。
しかしそれよりも、 自動生成されたコードのメソッド単位に属性を付けてくれれば良かったのですが、 クラスに付けてくれたのがマズいです。 これでは WPF 4 のフォーム内にゴリゴリ書かれてしまったコードが、 分析の対象にならないと思われます。

なお、 Visual Studio 2010 でも、 WPF 3.5 を選ぶと、 従来通り GeneratedCode 属性は付かないようです。 WinForm も同様に、 付きません。

|

« [HTML5] HTML4との相違点 日本語訳 | トップページ | [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました »

プログラミング」カテゴリの記事

* プログラミング ( WPF )」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [VS2010] (続) オプション 「生成されたコードから結果を表示しない」 の挙動不審:

« [HTML5] HTML4との相違点 日本語訳 | トップページ | [.NET] WebClient クラスの Encoding 自動認識がバグってる、というフィードバックをしました »