Visual Studio 2013では、特別なコード(メソッド、プロパティ、フィールドなど)の参照数がCode Lensによって表示されます。Visual Studioで未使用の(ゼロ参照)コードを取得したい。それらを取得する方法はありますか?
以下の参照を意味します:
public
コードベース全体を検索しないと、a が未使用であることを確認できないことに注意してください。ただし、未使用の内部とプライベートの場合、適切な警告を有効にすると、コード分析で警告が表示されます。
Visual Studio 2013では、特別なコード(メソッド、プロパティ、フィールドなど)の参照数がCode Lensによって表示されます。Visual Studioで未使用の(ゼロ参照)コードを取得したい。それらを取得する方法はありますか?
public
コードベース全体を検索しないと、a が未使用であることを確認できないことに注意してください。ただし、未使用の内部とプライベートの場合、適切な警告を有効にすると、コード分析で警告が表示されます。
回答:
おそらく、目的を達成するための最善かつ最も簡単な方法は、Visual Studioで組み込みのコード分析ツールを使用して、デッドコードと未使用のメンバーを直接見つけてそこに移動することです。
そのために、新しいコード分析ルールセットファイル([ファイル] - > [新規]-> [ファイル]を選択)を作成しました。左側のペインで[ 全般]が選択されていることを確認し、下にスクロールしてコード分析ルールセットを見つけ、ファイル名を指定して、以下のルールを選択します)。コピーして、使用する拡張子.rulesetを持つ新しいファイルに貼り付けることができるルールセットファイルの内容については、以下を参照してください。
ルールセットファイルを指定すると、ソリューションエクスプローラーパネルでプロジェクトファイルを右クリックし、[ プロパティ ]を選択できます。プロジェクトのプロパティウィンドウで、左側のパネルの[ コード分析 ]タブをクリックし、[ 開く ]をクリックして.rulesetファイルの場所を参照します。(プロジェクトファイルではなく)ソリューションファイルのプロパティに移動すると、ソリューション内の各プロジェクトのコード分析ファイルを1か所に設定できます([コード分析設定]の下で、ドロップダウンを使用して選択します)ルールセットファイル注:このプロパティウィンドウのドロップダウンに表示するには、事前にルールセットファイルを参照しておく必要があります。
そして、あなたは、単に(VIAプロジェクト/ソリューションにコード分析を実行Analyze->ファイル名を指定して実行コード解析についてソリューション -または- Altキー+ F11)、それは警告、任意の参照されていない方法や、見つかった未使用のメンバーとして戻ってくるだろう。それ自体が他のどこにも参照を持たないメソッドによって参照されるメソッドを見つけることもできます。
ただし、デッドコードのコード分析が誤解を招く可能性のある方法の1つとして、デリゲートを介してメソッドを呼び出すだけで参照が「非表示」になっている場合や、もちろんリフレクションがある場合は注意が必要です。
具体的には、デッドコードを検出するためのルールは次のとおりです。
以下は、あなたの確信のために、上記のステップに従うことで持つことができる.rulesetファイルの内容です。以下のXMLをコピーし、notepad ++に貼り付け、拡張子.rulesetを付けてどこかに保存し、前述のように参照して使用できます。
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6259" Action="Warning" />
</Rules>
</RuleSet>
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
「残念ながら、[Visual Studio Analysis]では、未使用のプライベートメンバーしか検出できません。これは、コードアナライザーがパブリックメンバーが他のプログラムで使用されていると想定しているためです。Webサービスを介してAPIとして公開している場合は、これが当てはまる可能性があります。または、コードをライブラリとしてリリースします。ReSharperには同様のコード分析機能があり、未使用のパブリックメンバーをチェックできるという利点があります。」
各ファイルを調べ、Ctrl-MOコマンドを実行してすべてを折りたたみ、スクロールして参照0を探します。
これは、パブリックとしてマークされている未使用のクラスを見つけるために使用した、手動での方法です。
注:ファイルごとに1つのクラスのルールに従わない場合は、さらに多くの作業が必要になります。また、外部プロジェクトで使用されていないことを確認する必要があるすべてのAPIサービスエンドポイント。