Visual Studio: обнаружение ненужных ассемблий

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

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

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

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

Ответы

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

Я нашел этот вопрос во время поиска в Google и искал способ удалить неиспользуемые инструкции "Использование" из моего кода.

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

Вот шаги:

  • Загрузите код в Visual Studio.
  • Щелкните правой кнопкой мыши в любом месте кодовой страницы.
  • Нажмите "Упорядочить использование" в меню.
  • Нажмите "Удалить неиспользуемые файлы"

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

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

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

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

Ответ 8

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

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

Ответ 9

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

Ответ 10

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

Невозможно сделать это на уровне решения.