問題タブ [fxcop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - FXCop:「使い捨て可能なフィールドを所有する型は使い捨てであるべきです」
いくつかのアセンブリに対して FXCop をいじり始めたところ、頭を包み込もうとしている興味深いことに気付きました。
「使い捨てメンバーを宣言する型は、IDisposable も実装する必要があります。型がアンマネージ リソースを所有していない場合は、ファイナライザーを実装しないでください。」
System.Web.UI.WebControls.Button から継承するいくつかのコントロールを含む独自のクラスがあります。継承されたボタンについて不満はありませんが、それらをラップするクラスはそうです。
ここでの影響や危険は何ですか?
.net - FXCop-参照されたアセンブリが見つかりませんでした
コンパクト版アプリケーションでMicrosoftFXCopバージョン1.36を使用しようとしていますが、プロジェクトを分析すると、次のエラーが発生します。
次の参照アセンブリが見つかりませんでした。このアセンブリは分析に必要であり、application.exeによって参照されました
System.Windows.Forms、Version = 3.5.0.0、Culture = neutral、PublicKeyToken = 969db8053d3322ac、Retargetable = Yes
アセンブリを参照して見つけることはできますが、GACでアセンブリを選択することはできません。
このアセンブリはGACにあり、アプリケーション自体は正常に機能します。FX Copにそれを見つけさせるために何か特別なことをする必要がありますか?
更新:プロジェクトオプションで[グローバルアセンブリキャッシュで不足している参照を検索する]を設定してみました
.net - プロジェクトで FXCop を使用する
本番コードの作成に FxCop を利用している IT ショップはたくさんありますか? もしそうなら、文化の変化、問題点、具体的なメリットの観点から、それを実装した全体的な経験はどのようなものでしたか?
私はやや混沌とした環境にいて、開発作業を標準化し、まともな時間に家に帰るのに役立つツールを探しています. 「実用的ではない」という理由だけで静的分析ツールをプッシュして失敗させたとしても、顔に卵を産むのは避けたいと思います。<- (予想される経営陣の対応)
c# - WinFormのDisposeメソッドを拡張するにはどうすればよいですか?
FxCopから次の警告が表示されます。
「「RestartForm」には、IDisposableタイプのフィールド「RestartForm.done」が含まれています:「ManualResetEvent」。「RestartForm」のDisposeメソッドを変更して、このフィールドでDisposeまたはCloseを呼び出します。」
わかりました。これが何を意味するのか、なぜこれを実行する必要があるのかを理解しています...またはSystem.Windows.Forms.Form
をオーバーライドできない場合を除いて、どうすればよいですか?現在、私はこのソリューションを実行しています:.Close()
.Dispose()
これは私のアプリケーションの意図どおりに機能します...しかし、FxCopはまだこのメッセージを表示します。私はカバーされていますか、それを安全に無視できますか、それともこれを行うべき別の方法がありますか?
c# - CA1062:共同コンストラクター呼び出しでのValidateArgumentsOfPublicMethods
次のような2つのコンストラクターを持つクラスがあります。
FxCopを実行すると、CA1062:ValidateArgumentsOfPublicMethodsの違反が正しく報告されます。これsource
はnull
、が最初のコンストラクターにある場合、をスローするためです。NullReferenceException
source.Name
この警告を修正する方法はありますか?
nullをチェックしてその引数を返す拡張メソッドを作成することはできますが、それは醜いでしょう。また、私が理解しているように、FxCopはそれが何をするのかを理解しないので、警告を解決しません。
fxcop - FxCop イントロスペクション エンジンを使用しようとしたときに発生するこの例外を修正するにはどうすればよいですか?
FxCop イントロスペクション エンジンを使用しようとすると、例外が発生します。
この例外は何を意味し、どうすれば修正できますか?
.net - FxCopログファイルの解析-どのように行いますか?
私は現在、大規模なコードベースでFxCopログファイルを解析するツールを作成しています。私の目標は、名前空間(アプリケーションのサブシステム)でソートされた、最も一般的な警告に関するグラフィカル情報を提供することです。
次に、これを使用して、関心のあるFxCopルールと、それらを削除するために実行する必要のあるアクションについてのディスカッションを開始できます。
ログファイルには、2種類のエントリが含まれています。名前空間が行自体から推測できるものとそうでないもの。以下の例を参照してください。
この警告は名前空間CompanyName.Commonに属していることがわかります。
このエントリでは、最後の2つの警告を名前空間に解決できません。CompanyName.Utilities名前空間に関係していると推測できるようにするには、最初の行に戻る必要があります。
この状況にどのように対処しますか?100%確実なIDを探しているわけではありませんが、ほとんどの警告を対応する名前空間に解決できるようにしたいと思います。
これまでの私の戦略: 2パスパーサーを検討しています。最初に、同じ行から名前空間情報を推測できる行を解析します。2番目のパスでは、名前空間情報がない行を検索し、その位置から名前空間情報がある最初の行に戻ります。
FxCopにXMLを生成させる機能がありません。Team Foundation Serverは、アセンブリごとにXMLで個々のFxCopファイルを作成しますが、ログファイル全体を含むファイルは上記の形式になっています。
より良いアイデアや提案はありますか?
これまでのところ素晴らしい提案です!ログファイルに関するいくつかの追加情報。このログファイルは、TeamFoundationServerのteambuildによって生成されます。それからXMLバージョンを作成できるかどうかはわかりません。
c# - このセキュリティ警告はどういう意味ですか (.Net Process クラス)?
VSTS 2008 + .Net 2.0 + C# を使用しています。そして、ビルド後にコード分析を実行しています。次の紛らわしいセキュリティ警告が表示されました。ここに警告と関連コードがありますが、何が間違っているのでしょうか? セキュリティ警告が表示された場合、それを修正するにはどうすればよいですか?
警告: CA2122: Microsoft.Security: 'TestHtml()' は、LinkDemand を持つ 'Process.Start()' を呼び出します。この呼び出しを行うことで、'Process.Start()' が間接的にユーザー コードに公開されます。セキュリティ保護を回避する方法を明らかにする可能性のある次のコール スタックを確認してください。
c# - コンストラクターでオーバーライド可能なメソッド - 修正のヘルプ
C#コーディング標準の一種の基礎として、C#プロジェクトでfxCopを使用しようとしています。
私が使用しているプロジェクトは S#arp Architecture と呼ばれ、ここから自由に入手できます: S#Arp Arch
ここで fxCop を実行すると (ほとんどのことは既に修正されています)、コンストラクターのオーバーライド可能なメソッドの CA2214 fxcop エラーを修正する必要があります。
現時点で、違反しているコードの一部は次のようになります。
そのほとんどは、他の cd ファイルで次のように呼び出されます。
メソッドのタイプ (private/protected など) を変更しようとしましたが、fxCop と単体テストのニーズが競合することがよくあります。保護された内部仮想、少し 22 をキャッチしますか?
したがって、この fxcop ルールを修正するための助けをいただければ幸いです。
(エラーは、仮想の get set メソッドである > でマークされた行で発生し、他の > を変更すると、不平を言う場所です)