100

プロジェクトで未使用の参照を見つけて削除するにはどうすればよいですか?

vs 2008 で using ステートメントを簡単に削除できることはわかっていますが、これによってプロジェクト内の実際の参照が削除されるわけではありません。参照された dll は、引き続き bin/setup パッケージにコピーされます。

4

11 に答える 11

55

*注:この回答の別のバージョンについては、 http ://www.jetbrains.net/devnet/message/5244658 を参照してください。

投稿を読むと、元の質問に関して混乱があるようです。突き刺してみましょう。

元の投稿は、「ある Visual Studio プロジェクトから、使用されていない他のプロジェクト/アセンブリへの参照を特定して削除するにはどうすればよいですか?」という質問を実際に投げかけています。投稿者は、アセンブリがビルド出力の一部として表示されないようにしたいと考えています。

この場合、ReSharper はそれらを特定するのに役立ちますが、自分で削除する必要があります。

これを行うには、ソリューション ブラウザーで [参照] を開き、参照されている各アセンブリを右クリックして、[依存コードの検索] を選択します。見る:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

次のいずれかを取得します。

  1. ブラウザー ウィンドウ内のその参照に対する依存関係のリスト、または

  2. 「モジュール XXXXXXX に依存するコードが見つかりませんでした。」というダイアログが表示されます。

2 番目の結果が得られたら、参照を右クリックして [削除] を選択し、プロジェクトから削除します。

これを「手動で」、つまり一度に 1 つずつ参照する必要がありますが、これで作業は完了です。誰かが何らかの方法でこれを自動化した場合、私はそれがどのように行われたかを聞くことに興味があります.

.Net Framework のものは、通常はビルド出力にコピーされないため、ほとんど無視できます (通常、Silverlight アプリには必ずしも当てはまりません)。

一部の投稿は、「そのファイル内の参照を解決する必要のないソース コード ファイルから using 句 (C#) を削除するにはどうすればよいですか」という質問に答えているようです。

この場合、ReSharper はいくつかの点で役立ちます。

  1. オンザフライ エラー検出中に使用されていない using 句を識別します。それらはコード インスペクションの警告として表示されます - コードはファイル内でグレー表示され (デフォルトで)、ReSharper はそれを削除するためのヒントを提供します。

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. コードのクリーンアップ プロセスの一部として、それらを自動的に削除できます。

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

最後に、ReSharper がソリューションの静的コード分析を行うことを理解してください。そのため、アセンブリへの動的参照がある場合 (リフレクションや、実行時に動的に読み込まれ、インターフェイスを介してアクセスされるアセンブリなど) は、それを取得しません。 プロジェクトで作業する際に、コード ベースとプロジェクトの依存関係を理解することに代わるものはありません。ReSharper の機能は非常に便利だと思います。

于 2009-09-05T08:19:33.100 に答える
12

私が書いた「使用されていない参照の削除」拡張機能を使用できます。

http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

于 2011-05-11T08:39:20.350 に答える
7

未使用の参照の削除は、Visual Studio 2008 で既にサポートされている機能です。残念ながら、VB .NET プロジェクトのみです。

C# プロジェクトでもこの機能を利用できるように、Microsoft Connect で提案を開始しました。

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

この機能も気に入ったら、私の提案に投票してください。

于 2009-11-13T13:58:20.313 に答える
5

これを試してください:参照アシスタント

概要

Reference Assistant は、Visual Studio 2010 の C#、F#、VB.NET、または VC++/CLI プロジェクトから未使用の参照を削除するのに役立ちます。

于 2012-02-06T01:38:20.633 に答える
4

ReSharper 6.1 には、次の機能が含まれます。

  • 参照の最適化: アセンブリ参照とコード内でのその使用法を分析し、冗長な参照のリストを取得して削除します。

  • 未使用の参照の削除: 冗長なアセンブリ参照を削除するためのクイック リファクタリング。

  • アセンブリ参照の安全な削除: すべてのアセンブリ参照が冗長である場合はアセンブリ参照を削除し、そうでない場合は使用法を無効にし、選択したリストの冗長アセンブリ参照のみを削除できます。

于 2011-11-15T09:17:52.143 に答える
4

ReSharperがこれを行います (他にもたくさんあります!)

于 2008-09-17T09:57:31.807 に答える
3

Visual Studio のどのバージョンでも、どの Framework バージョンでも機能する無料の回答があります。未使用の参照は削除されませんが、識別されます。

プロジェクト dll でTelerik JustDecompileを使用できます。JustDecompile で dll を開き、下に移動Referencesして、コンパイルされた dll で実際に使用されているものを確認します。

ここに画像の説明を入力

于 2015-08-26T17:06:05.687 に答える
3

VS 2010 Ultimate Architecture->Generate Dependency Graph->By Assembly で拡張せずにこれを実行すると、使用されているアセンブリが表示され、未使用の参照が手動で削除されました。

于 2012-10-28T10:29:17.323 に答える
0

VisualStudio (または msbuild ですか?) が未使用の参照を検出し、それらを出力ファイルに含めないことを考えると、csproj から参照を解析し、それを参照によって検出された参照アセンブリと比較するスクリプトを作成できます。プロジェクト出力。

やる気さえあれば…

于 2008-10-23T07:21:07.197 に答える