0

fxcopcmd.exe で非常に奇妙な動作が発生します。1 つのアセンブリ (Assembly X) のみを指定して fxcopcmd.exe を起動すると、違反は発生しません。しかし、ソリューションのすべてのアセンブリを指定すると、(アセンブリ X) で多くの違反がスローされます。見逃したものはありますか?Visual Studio でコード分析を使用する場合、すべてのアセンブリに対してコード分析を実行しても違反がないことに注意してください。

詳細:

1- Visual Studio 2013 のソリューションを 6 つの巨大な C# プロジェクトで使用します。

2- VisualStudio 2013 (バージョン 12.0.21005.1) のインストールに含まれる fxcopcmd.exe を使用します。

3- 違反を検出しないコマンド ライン コマンドの例:

tools\FxCopCmd\FxCopCmd.exe /file:build\bin\Assembly1.dll /out:results.txt /ruleset:=Tools\FxCopRuleSet\CompagnyRules.ruleset /ignoregeneratedcode

4- 違反を検出するコマンド ライン コマンドの例:

tools\FxCopCmd\FxCopCmd.exe /file:build\bin\Assembly1.dll /file:build\bin\Assembly2.dll  /file:build\bin\Assembly3.dll /file:build\bin\Assembly4.dll /out:results.txt /ruleset:=Tools\FxCopRuleSet\CompagnyRules.ruleset /ignoregeneratedcode

Assembly1.dll で 100 を超える違反が検出されていることに注意してください。

違反の原因となるルールは次のとおりです: AvoidUninstantiatedInternalClassesAvoidUncalledPrivateCodeAvoidUnusedPrivateFieldsTypeNamesShouldNotMatchNamespaces


したがって、これは異なるアセンブリ間の関係には関係ありません。TeamCity で適切に自動化するために私が見つけた唯一の解決策は、さまざまなアセンブリで fxcopcmd.exe を 1 つずつ呼び出し、結果をさまざまなファイルに出力する nant スクリプトを使用することです。

どんなアイデアでも大歓迎です!

ありがとう。

4

1 に答える 1