多数のプロジェクトごとに最大15のソリューションを備えた製品があります。
質問は非常に単純です。コードベース全体でデッドコードを検索できるツールはどれですか。
単一のソリューション内での検索は非常に簡単です(そのソリューションのSOに関する多くの回答)。
しかし、AlphaSol自体の中で使用されていないソリューションAlphaSolのプロジェクトAlphaProjの "public void Foo()"が実際にBetaSolなどで使用されているかどうかを判断するのはどうでしょうか。
多数のプロジェクトごとに最大15のソリューションを備えた製品があります。
質問は非常に単純です。コードベース全体でデッドコードを検索できるツールはどれですか。
単一のソリューション内での検索は非常に簡単です(そのソリューションのSOに関する多くの回答)。
しかし、AlphaSol自体の中で使用されていないソリューションAlphaSolのプロジェクトAlphaProjの "public void Foo()"が実際にBetaSolなどで使用されているかどうかを判断するのはどうでしょうか。
15のソリューションがありますが、すべてのプロジェクトを参照する別のソリューションを作成することを妨げるものは何もありません。たとえば、All.slnとしましょう。したがって、外部参照を見つける必要があるときはいつでも、このAll.slnソリューションを開いて、参照を探してください。
おそらく約100のソリューションがあり、それらのソリューションのすべてのプロジェクトを参照するAll.slnが1つあります。1つのソリューションからAll.slnにすべてのプロジェクトを追加するのは簡単ですAdd Existing Projects
。15のソリューションファイルの1つを選択して選択するだけです。Add Existing Projects
ソリューションファイルを選択できるようにするには、ダイアログでファイルタイプを調整する必要があります。また、この大きなソリューションを整理するために、ソリューションフォルダーを使用できます。
NDependをチェックアウトすることもできます。
もう1つの答えはあなたの差し迫った必要性に対して十分静かであり、私は悪いコマーシャルのように聞こえたくないので、そのツールについてもっと知るために興味のある読者に任せます。
クリスチャンの答えを少し詳しく説明すると、ツールNDependは、.NETコードベースで未使用のコードを見つけるのに役立ちます。免責事項:私はこのツールの開発者の一人です。
NDependは、LINQクエリ(CQLinq)を介したコードルールの記述を提案しています。約200のデフォルトコードルールが提案されており、そのうち3つは未使用/デッドコードの検出専用です。
NDependはVisualStudioに統合されているため、これらのルールはIDE内でチェック/閲覧/編集できます。このツールはCIプロセスに統合することもでき、違反したルールや原因のコード要素を示すレポートを作成できます。
これらのルールのソースコードに向かって上記の3つのリンクをクリックすると、タイプとメソッドに関するものが少し複雑であることがわかります。これは、未使用のタイプとメソッドだけでなく、未使用のデッドタイプとメソッド(再帰的)によってのみ使用されるタイプとメソッドも検出するためです。
これは静的分析であるため、ルール名にプレフィックスが含まれている可能性があります。コード要素がリフレクションによってのみ使用される場合、これらのルールはそれを未使用と見なす可能性がありますが、そうではありません。
これらの3つのルールを使用することに加えて、テストによってコードカバレッジを測定し、完全なカバレッジを実現するように努めることをお勧めします。多くの場合、テストでカバーできないコードは、実際には未使用/デッドコードであり、安全に破棄できることがわかります。これは、コードのブランチに到達できるかどうかが明確でない複雑なアルゴリズムで特に役立ちます。