Visual Studio: обнаружение ненужных сборок - PullRequest
13 голосов
/ 18 сентября 2008

В более крупных и / или долгосрочных проектах я обычно ссылаюсь на множество сборок и пространств имен, и часто в итоге я удаляю некоторые функции позже или перемещаю их в другой проект.

Мне просто интересно, есть ли способ проверить каждый проект (хек, каждый файл .cs) во всем моем решении Visual Studio и получить список всех сборок и пространств имен, на которые есть ссылки, которые на самом деле не используются и могут быть безопасно удалены ? Я знаю, что ReSharper может сделать это для одного файла кода, но я не видел опции, чтобы проверить все файлы или проверить ненужные сборки.

Использование Visual Studio 2005 и 2008 Professional, если это имеет значение.

Редактировать: Спасибо. Проблема с ReSharper или «Remove and Readd if build breaks» заключается в том, что он довольно утомителен для каждого отдельного файла и сборки (мой проект содержит около 120 файлов .cs в 7 сборках и ссылается на 18 сборок вне решения) так что в идеале я ищу что-то "в один клик". Большой бонус указывает на некоторый автоматический способ, который можно использовать в buildscripts для генерации отчета:)

Ответы [ 10 ]

5 голосов
/ 18 сентября 2008

Resharper сделает это за вас, и вы можете установить его в опции «Чистый код», чтобы вы могли запускать решение в широком диапазоне; o)

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

Если у вас есть ReSharper, выберите решение, щелкните правой кнопкой мыши и выберите код очистки. Затем Resharper будет проходить через каждый файл кода в решении.

Что касается удаления ссылок проекта, то при запуске компилятор не добавит ссылку, если код не использует эту библиотеку.

3 голосов
/ 19 сентября 2008

Если у вас установлен ReSharper, то из Solution Explorer вы можете щелкнуть правой кнопкой мыши ссылку и щелкнуть Найти зависимый код . Если он возвращается с диалоговым окном результатов, то вы используете эту ссылку / сборку. Если вы получите сообщение «Код зависит от модуля имя модуля не найдено». Тогда вы должны быть в порядке, чтобы удалить эту ссылку / сборку, потому что она не используется.

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

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

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

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

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

2 голосов
/ 11 марта 2009

Я нашел этот вопрос, когда искал в Google и искал способ удалить неиспользуемые операторы «Using» из моего кода.

Рефакторинг великолепен, но он мне недоступен. Однако, как оказалось, Visual Studio 2008 делает это самостоятельно.

Вот шаги:

  1. Загрузить код в Visual Studio.
  2. Щелкните правой кнопкой мыши в любом месте кодовой страницы.
  3. Нажмите «Организовать использования» в меню.
  4. Нажмите «Удалить неиспользованные использования»

Готово. Я понимаю, что это не отвечает на первоначальный вопрос (делая это массово для всего проекта), но это действительно отвечает на мой вопрос.

2 голосов
/ 23 октября 2008

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

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

1 голос
/ 19 сентября 2008

Как упоминалось в предыдущих ответах, Resharper хорошо работает для этого, а также для множества других случаев, таких как способы сделать код чище и генерировать определенные вещи для вас. Лучший способ действительно понять все преимущества Resharper - это загрузить пробную версию, распечатать Таблицу ключей и прикрепить ее рядом с вами, где вы разрабатываете.

Короче говоря, это решает эту проблему, но делает намного больше, чем просто.

0 голосов
/ 19 сентября 2008

Это не избавит от каких-либо ссылок в коде на ваши ссылочные сборки (я думаю), но вы можете перейти к свойствам каждого из ваших проектов, перейти к ссылкам и нажать «Неиспользованные ссылки ...». Затем Visual Studio дает вам возможность удалить их прямо там.

Нет способа сделать это на уровне решения.

0 голосов
/ 19 сентября 2008

Любой приличный профилировщик кода сделает это за вас. Мне лично нравится DevPartner.

0 голосов
/ 18 сентября 2008

Да, я не думаю, что есть один. Я просто удаляю некоторые, которые, по моему мнению, не нужны, затем строю: /

КСТАТИ. это будет продолжать использовать ошибки. Вы можете использовать команды Visual Studio Power для удаления и сортировки данных, поэтому сначала сделайте это, а затем удалите случайные сборки: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...