Как вы очищаете проект от ненужных DLL в Visual Studio?

512
10 июня 2017, 12:31

Например, вы скачали какую-то модную DLL из Nuget, а следом за ней подтянулась тонна других DLL(зависимости).

Потом вы понимаете, что это вам не нужно и хотите это удалить.

Как это оптимально сделать?

Тут возникают следующие проблемы:

  1. Как определить, что нужно для конкретной DLL и ненужно для других, что бы безболезненно это удалить?
  2. Почистить папку от мусора, куда складывает закаченные DLL Nuget. Я пробовал удалять через интерфейс VS, но он позволяет удалять только по 1, что неудобно.
Answer 1

Для этого можно поставить Resharper.

Также очень удобно, что когда вы удаляется ссылки на проект и сборки через Resharper, он также удаляет все лишних директивы using, пространства имён которых содержатся в используемых сборках (что сильно улучшает пользование, так как если удалять вручную ссылки, то также надо не забывать подчищать директивы using).

Чтобы удалить неиспользуемые ссылки

  1. В Solution Explorer (Обозреватель решений), выберите один или несколько проектов, папок решения или корень решения или, другой вариант выбирите узел References (Ссылки) проекта.

  2. Далее одно из двух:

    • Нажмите правой кнопкой мыши по выбранной области и выберите Refactor → Remove Unused References (Рефакторинг → Удалить неиспользуемые ссылки) в контекстном меню.
    • Нажмите Ctrl+Shift+R и выберите Remove Unused References (Удалить неиспользуемые ссылки).

    Откроется диалог Remove Unused References (Удалить неиспользуемые ссылки).

  3. Все ссылки котороые не используются в исходном коде покажутся в древовидное представлении (tree view), сгруппированные по проектам. По умолчанию все ссылки выбраны для удаления. Если необходимо, снимите флажок с тех ссылок, которые хотите оставить.

  4. Нажмите Next (Далее), чтобы удалить выбранные ссылки.

  5. Вы также можете увидеть все ссылки (и используемые, и неиспользуемые) в выбранной области действия. Чтобы это получилось, нажмите Analyze Used References (Анализировать используемые ссылки). Ссылки показаны в окне Analyze References (Анализировать ссылки), где вы также можете удалить неиспользуемые ссылки. Для большей информации об анализировании ссылок, смотрите анализ и оптимизация ссылок проекта.

Использование Resharper для тех, кто его недолюбливает

Многие сейчас могу возразить, сказав, что он ест кучу ресурсов и будут правы. Если кому интересно, я им пользуюсь так: если зашёл "обросший мохом" проект и надо его подчистить, я его ставлю (если не стоит), или просто запускаю (из приостановленного положения, Options → Resharper → Resume), делаю кучу массовых рефакторингов, который он позволяет, затем его отключаю, Options → Resharper → Suspend Now (но не удаляю, так удобней, если вдруг пригодится).

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

READ ALSO
WebClient неверно скачивает файл

WebClient неверно скачивает файл

Есть хостинг на котором лежит файлФайл создан из dll библиотеки прочитанной ReadAllBytes и сохраненной WriteAllBytes как массив байтов, на это не важно

351
Unity, Не работает переход на другую сцену

Unity, Не работает переход на другую сцену

Делаю игрушку на andriod, есть две сцены main и menuСоответственно main - сама игра, а menu - игровое меню до запуска

583
С#. Переопределение метода GetHashCode [дубликат]

С#. Переопределение метода GetHashCode [дубликат]

На данный вопрос уже ответили:

308
Как экранировать символы в запросе MS SQL Server?

Как экранировать символы в запросе MS SQL Server?

Имеется программа на С#, работающая с MS SQL Server:

547