Удалить неиспользуемые ссылки (! = "Using") - PullRequest
100 голосов
/ 17 сентября 2008

Как мне найти и удалить неиспользуемые ссылки в моих проектах?

Я знаю, что вы легко можете удалить операторы использования по сравнению с 2008 годом, но это не удаляет фактическую ссылку в ваших проектах. Упомянутая dll все равно будет скопирована в ваш пакет bin / setup.

Ответы [ 11 ]

55 голосов
/ 05 сентября 2009

* Примечание: см. http://www.jetbrains.net/devnet/message/5244658 для другой версии этого ответа.

Читая посты, похоже, что существует некоторая путаница с исходным вопросом. Позвольте мне нанести удар.

Оригинальный пост действительно задает вопрос: «Как определить и удалить ссылки из одного проекта Visual Studio на другие проекты / сборки, которые не используются?» Постер хочет, чтобы сборки больше не появлялись как часть результатов сборки.

В этом случае ReSharper может помочь вам идентифицировать их, но вы должны удалить их самостоятельно.

Чтобы сделать это, откройте References в обозревателе решений, щелкните правой кнопкой мыши по каждой ссылочной сборке и выберите «Найти зависимый код». См:

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

Вы также получите:

  1. Список зависимостей от этой ссылки в окне браузера или

  2. Появится диалоговое окно с сообщением «Код, зависящий от модуля XXXXXXX, не найден».

Если вы получите второй результат, вы можете затем щелкнуть правой кнопкой мыши ссылку, выбрать Удалить и удалить его из вашего проекта.

Несмотря на то, что вам нужно это «вручную», то есть по одной ссылке за раз, оно выполнит свою работу. Если кто-то автоматизировал это каким-либо образом, мне интересно услышать, как это было сделано.

Вы можете в значительной степени игнорировать те из них в .Net Framework, поскольку они обычно не копируются в выходные данные вашей сборки (как правило, хотя это не всегда верно для приложений Silverlight).

Некоторые сообщения, кажется, отвечают на вопрос: «Как мне удалить использование выражений (C #) из файла исходного кода, которые не нужны для разрешения каких-либо ссылок в этом файле».

В этом случае ReSharper действительно помогает несколькими способами:

  1. Определяет неиспользуемые пункты использования для вас во время обнаружения ошибок на лету. Они отображаются в виде предупреждений проверки кода - код будет выделен серым (по умолчанию) в файле, и 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 очень полезны.

12 голосов
/ 11 мая 2011

вы можете использовать расширение Удалить неиспользуемые ссылки , которое я написал:

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

7 голосов
/ 13 ноября 2009

Удаление неиспользуемых ссылок - это функция, уже поддерживаемая Visual Studio 2008. К сожалению, только для проектов VB .NET.

Я предложил Microsoft Connect подключиться к этой функции и для проектов на C #:

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

Если вам также понравилась эта функция, вы можете проголосовать за мое предложение.

5 голосов
/ 06 февраля 2012

Попробуйте это: Справочный помощник

Основная информация

Reference Assistant помогает удалить неиспользуемые ссылки из C #, F #, Проекты VB.NET или VC ++ / CLI в Visual Studio 2010.

4 голосов
/ 15 ноября 2011

ReSharper 6.1 будет включать в себя следующие функции:

-Оптимизация ссылок: проанализируйте ссылки на сборки и их использование в коде, получите список избыточных ссылок и удалите их.

-Удалить неиспользуемые ссылки: быстрый рефакторинг для удаления избыточных ссылок на сборки.

-Безопасное удаление ссылок на сборки: удаляет ссылки на сборки, если все они избыточны, в противном случае отменяет использование и может удалить только избыточные ссылки на сборки из выбранного списка.

4 голосов
/ 17 сентября 2008

Resharper сделает это за вас (и многое другое!)

3 голосов
/ 28 октября 2012

Я сделал это без расширения в VS 2010 Ultimate Архитектура-> Создать график зависимостей-> По сборке показывает используемые сборки и вручную удаляет неиспользуемые ссылки.

2 голосов
/ 26 августа 2015

У меня есть бесплатный ответ, который работает в любой версии Visual Studio и любой версии Framework. Не удаляет неиспользуемые ссылки, но идентифицирует их.

Вы можете использовать Telerik JustDecompile на вашем проекте DLL. Просто откройте dll в JustDecompile и перейдите под References, чтобы увидеть, что фактически используется в скомпилированной dll.

enter image description here

0 голосов
/ 18 декабря 2015

Если вы знаете, какие ссылки не используются, вы можете удалить их вручную.
В обозревателе решений щелкните правой кнопкой мыши ссылку в узле References и выберите команду Удалить.

0 голосов
/ 08 декабря 2014

Я думаю, что скопированы в bin \, потому что в проекте, который удалил ссылку, есть ссылка на другой проект, который имеет ту же ссылку ...

...