0

私たちのグループには、いくつかの内部プロジェクト (すべて C#) が利用する「ツール ライブラリ」DLL があります。私は、ツール ライブラリのかなりの部分がプロジェクトの 1 つだけで使用されているという直感を展開しました。そのプロジェクトを「プロジェクト A」と呼びましょう。ツール DLL とすべてのプロジェクト (おそらくプロジェクト EXE) を調べ、実際にプロジェクト A でのみ使用されるツール ライブラリ内のすべてのメソッドとクラスを列挙できる .NET ツールはありますか? いくつかのリファクタリング (ツール ライブラリの一部をプロジェクト A 自身のコードベースに戻す) が適切であると思います。そのようなリストは非常に役立つように思えます。

反省のため、ツールが 100% 正しく機能するとは思えません。しかし、私たちのプロジェクトのどれも、巧妙なリフレクション手法を使用してツール ライブラリを呼び出していないことを知っているとしましょう。静的分析に適した通常のメソッド呼び出しでのみ呼び出します。

4

5 に答える 5

2

ツールNDependがそれを判断できるようです。また、Visual Studio でReSharperを使用しているかどうかを簡単に確認するには、プロジェクト参照で dll を右クリックし、[依存コードの検索] を選択します。これにより、1 つのプロジェクト内の使用状況が一覧表示されます。

于 2009-01-28T20:48:50.160 に答える
1

各タイプ/名前空間 (または本当に必要な場合はメソッド) ごとに分類された使用済み/使用済みの観点からの完全なリストについては、NDependがおそらく最善の策です。これを行うことができるはずの無料の限定版を入手できます。

クエリは、IsUsedByIsUsingに基づいています。

プロジェクトごとに個別の名前空間がある場合 (Foo.A と Foo.B としましょう)

SELECT TYPES WHERE IsUsedBy "Foo.A"

SELECT TYPES WHERE IsUsedBy "Foo.B"

そして、それぞれで使用されているタイプの素晴らしいリストが得られます。結果をスプレッドシートの表にドロップすると、共有/分離されているものが適切にドロップアウトされます

于 2009-01-28T22:19:48.200 に答える
0

.NET Reflector - 技術的にはリストを提供しませんが、すべての DLL/Exes をロードすると、1 つの場所からのみ使用されると思われる各タイプで「分析」機能を使用でき、それを確認または表示しますタイプを使用する他の場所。

于 2009-01-28T20:47:42.893 に答える
0

ツール ライブラリ DLL がプロジェクト A で参照されていると仮定すると、Resharper の「使用箇所の検索」機能を使用できます。これにより、参照されているアセンブリ (この場合はツール ライブラリ) が使用されていることがわかります。

于 2009-01-28T20:49:06.493 に答える
0

ここでの提案.... 書くことができると確信していますが、膨大な数のdllを持っていない限り、おそらく書く必要はありません。私はこれを試してみます:

  • 「リフレクター」を入手

    • それを開く :)
    • すべての DLL をリストに追加します
    • 気になるクラス/メソッドに移動
    • 右クリック
    • 「分析する」を選択
    • 「依存先」と「使用先」を示すアナライザーのエントリを取得する必要があります。
  • 新しいソリューションを作成する

    • 既存のプロジェクトをすべて含める
    • ツール プロジェクトのメソッドを右クリックして [すべての参照を検索] コマンドを使用して、誰がそれらを使用しているかを確認します。
    • 1つしかない場合は、わかります

お役に立てれば。

于 2009-01-28T20:49:30.440 に答える