2013-06-16 19 views
7

Visual Studio 2010(または2012)には、参照されているDLLに定義されているクラス/メソッドを示すコード内のすべての参照を見つける方法があります。プロジェクト内のDLLのすべての参照を見つける

現在、私は(状況に応じて)私が使用する2つのプロセスがあります。

  • を最初のものは、単にプロジェクトからのDLLの参照を削除し、すべてのビルドエラーの場所をメモして作製することを含みます。
  • もう1つの方法はObject Browserの参照を開き、その名前空間に展開し、各名前空間に対して手動検索を行いますが、これは必ずしもすべての参照を見つけるのに役立つわけではなく、従来のコードは同じ名前空間複数のアセンブリにまたがる場合、フィルタリングするために多くのノイズが発生します。

これらのどちらも本当に理想的な解決策ではありません。これを行う簡単な方法はありますか?おそらくVSの拡張を介して。

答えて

6

あなたはReSharperのをインストールする場合は、これを見つけることができます:

Referencesを展開し、Find code Dependent on Module

enter image description here

を選択した結果は、その後のように表示されます。

enter image description here

+0

素晴らしいです!先端に感謝します。 Resharperがこれを行うことができることを知らなかった! –

2

はしないでくださいResharperを持っていますが、あなたは崇高なテキストを持っていますか?

崇高なテキストで、 'open folder'を選択し、解決策を含むフォルダを選択します。次に、選択したメニュー項目は検索- で

...ファイルから検索>'をどこに:' フィールド、次のコマンドを入力します。[検索:「で、その後

*.scsproj 

フィールドを検索文字列例えば

Include="[full namespaced name of library]" 

Include="System.Xml.Linq" 

は、ソリューションにSystem.Xml.Linq dllを参照するすべてのプロジェクトを検索します。

+0

私はdllを参照するプロジェクトを探していませんでしたが、私はどのクラスがdllで定義されているメンバーを使用しているのか探していました。 – Seph

0

拡張機能はありませんか?

ただ、コードの一部を書いてください...最も簡単な...私はそれが非常に簡単で、コードを経由して、プロジェクトファイルを編集するために見つける。..

private static List<string> FindAllRefrences(ref int ctr, string dir, string projectToSearch) 
    { 
     List<string> refs = new List<string>(); 
     foreach (var projFile in Directory.GetFiles(dir, "*.csproj", SearchOption.AllDirectories)) 
     { 
      if (projFile.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0) 
       continue; 
      //var t = false; 
      var lines = File.ReadAllLines(projFile); 

      foreach (var line in lines) 
      { 
       if (line.IndexOf(projectToSearch, StringComparison.OrdinalIgnoreCase) >= 0) 
       { 
        ctr++; 
        refs.Add(projFile); 
        break; 
       } 
      } 
     } 

     return refs; 
    } 
関連する問題