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

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

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

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

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

0
Недавно Resharper сделал более дешевую личную лицензию. Я думаю, что сейчас это 134 € для C #. Разумеется, бесплатные инструменты были бы хороши (если MSBuild мог бы сделать это, если бы honkey-dorey!), Но я в основном ищу что-то, что работает первым :)
добавлено автор Michael Stum, источник
добавлено автор Josh Lee, источник
Было бы неплохо, если бы вопрос касался бесплатных инструментов, а не только инструментов. У меня, похоже, есть resharper, поэтому решение ниже хорошо, но все же ...
добавлено автор Oskar, источник

10 ответы

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

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

0
добавлено

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

0
добавлено

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

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

0
добавлено

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

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

0
добавлено

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

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

Вот шаги:

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

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

0
добавлено
это также доступно в Visual Studio 2010
добавлено автор Junior M, источник

Resharper will do this for you and you can set it up in the Clean Code option that you can run solution wide ;o)

0
добавлено

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

0
добавлено

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

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

0
добавлено

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

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

0
добавлено

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

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

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

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

0
добавлено
Спасибо, что открыли предложение о подключении, недостаточно людей приложили все усилия для этого. Кроме того, мне интересно, есть ли способ получить эту скрытую функцию с помощью макроса для проекта C #.
добавлено автор jpierson, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)