コードを改善するために StyleCop と FxCop ツールを使用していますが、StyleCop と FxCop の 2 つのルールが存在する場所に行き着きました。StyleCop のルールに一致するようにコードを修正すると、FxCop の検証が失敗し、その逆も同様です。
最初のルールは StyleCop の SA1200 で、すべての using ディレクティブは名前空間内に配置する必要があると述べています。
すべての using ディレクティブは、名前空間内に配置する必要があります。
だから私はこのようなことをしました
namespace MyNamespace
{
using System;
...
}
StyleCop では問題ありませんでした。警告はなくなりました。ここで FxCop 検証を実行すると、CA1014 に違反していることがわかります。
'MyApp.dll' を CLSCompliant(true) でマークします。これは、外部から見える型を公開するためです。
これを解決するには、次のようにする必要があります。
[ClsCompliant(true)]
namespace MyNamespace
{
...
}
ClsCompliant
しかし、属性が認識されないため、プロジェクトをビルドできません( のSystem
中に含まれる名前空間からのものであるためMyNamespace
)。したがって、using System;
ディレクティブをMyNamespace
宣言の外に移動すると。これにより、コードがコンパイルされますが、StyleCop のルールが破られます。
StyleCop または FxCop のルールの 1 つを無効にする以外に、この問題に対処する方法はありますか? それが不可能な場合、どのルールを無効にする必要がありますか? 重要度が低いのはどれですか?