Удалить неиспользуемые ссылки (!= "Using" )

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

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

Ответ 1

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

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

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

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

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

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

Вы либо получите:

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

  • Диалоговое окно, в котором указано, что "Код, зависящий от модуля XXXXXXX, не найден".

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

Пока вам нужно "вручную", то есть одну ссылку за раз, она выполнит задание. Если кто-то автоматизировал это каким-то образом, мне интересно узнать, как это было сделано.

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

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

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

Наконец, поймите, что ReSharper делает статический анализ кода на вашем решении. Итак, если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, динамически загружаемую во время выполнения и доступную через интерфейс - она ​​не подберет ее. Нет смысла понимать ваш код базы и зависимостей проекта при работе над вашим проектом. Я действительно считаю, что функции ReSharper очень полезны.

Ответ 3

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

Я открыл предложение Microsoft Connect для получения этой функции для проектов С#:

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

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

Ответ 4

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

Резюме

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

Ответ 5

Resharper сделает это за вас (и так намного больше!)

Ответ 6

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

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

-Remove Unused References: быстрый рефакторинг для удаления избыточных ссылок на сборку.

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

Ответ 7

Я сделал это без расширения в VS 2010 Ultimate Architecture- > Generate Dependency Graph- > Assembly, он показывает используемые сборки и вручную удаляет неиспользуемые ссылки.

Ответ 8

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

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

введите описание изображения здесь

Ответ 9

Учитывая, что VisualStudio (или это msbuild?) обнаруживает неиспользуемые ссылки и не включает их в выходной файл, вы можете написать script, который анализирует ссылки из csproj и сравнивает это с ссылочными ассемблиями обнаружено отражением на выходе проекта.

Если вы мотивированы...

Ответ 10

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

Ответ 11

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