ターゲットフレームワーク機能を支援するFxCopルール

以前のこちらの投稿Visual Studio 2008のターゲットフレームワーク機能は不完全であるというような内容を書きましたが、これは.NET Framework 3.0の場合だけでなく2.0の場合にも存在する問題のようです。その内容と対応方法としてVisual Studioのコード分析機能を使う方法が下記のページに書かれていましたので、紹介したいと思います。

FxCop Rule for Multi-Targeting – Krzysztof Cwalina



.NET Framework 3.5をインストールすることで、.NET Framework 2.0部分のアセンブリのいくつかはやはりクラスやメンバが増えることになります。上記のページでは、GCSettingsクラスのLatencyModeプロパティが紹介されています。このプロパティは、.NET Framework 2.0 RTM時点では存在していないプロパティになります。


mscorlib.dll
ファイルバージョン:2.0.50727.832



mscorlib.dll
ファイルバージョン:2.0.50727.1378



この問題に対して、独自のFxCopルールを作成してビルド時に警告を出すようにする方法で対応することができるようです。上記のページには独自のFxCopルールを作成するサンプルが添付されています。これを少し改良してViewport2DVisual3Dクラスを使用している場合には警告が発生するようにしてみたところ、とりあえずコード内で使用している場合にはうまくいきました。



しかしながら、XAML内に書かれているものについては警告が発生しませんでした。