2010-07-01 2 views
187

Мне просто интересно, можно ли в разных версиях Visual Studio автоматически удалять все ссылки из проекта, который никогда не использовался?Удаление всех неиспользуемых ссылок из проекта в проектах Visual Studio

В вашем ответе укажите, к какой версии VS применяется решение.

+4

В целом интересно, удаляет ли эти DLL заметное улучшение времени сборки или что-то еще? (Конечно, кроме удаления избыточных зависимостей) – Monish

+2

есть ли подобное расширение для VS2015? –

+0

Проект VB.Net имеет его начиная с VS 2005, но он никогда не реализовывался для проектов C# https://msdn.microsoft.com/en-us/library/7sfxafba – Slai

ответ

22

В проекте Visual Basic есть поддержка для удаления «Неиспользуемые ссылки» (Project -> References -> Unused References). В C# такой функции нет.

Единственный способ сделать это в проекте C# (без других инструментов) - удалить возможные неиспользуемые сборки, скомпилировать проект и проверить, не возникли ли ошибки во время компиляции. Если ошибок не произошло, вы удалили неиспользуемую сборку. (See my post)

Если вы хотите узнать, какой проект (сборка) зависит от других сборок, вы можете использовать NDepend.

+2

В VS 2008/2010 есть пункт меню правой кнопки мыши для удаления или удаления и сортировки. – JohnB

+9

@JohnB: Конечно, вы правы, но его вопрос касается ссылок (на собрания), а не использования (пространств имен). – Jehof

+0

VS2012: меню: Project-> properties-> Ссылки-> Неиспользуемые ссылки. – LosManos

27

Вы можете попробовать бесплатное расширение VS2010: Reference Assistant от группы Lardite. Он отлично подходит для меня. Этот инструмент помогает найти неиспользуемые ссылки и позволяет выбрать, какие ссылки следует удалить.

+31

не работает с VS 2012/2013 – Amit

+2

Не работает с проектом MVC. Он удаляет важную DLL как .Helpers и .WebPage –

+2

@Удайте, что расширение имеет [рабочая версия для VS2012 сейчас] (http://visualstudiogallery.msdn.microsoft.com/ff717422-f6a7-4f18-b972-f7540eaf371e) –

8

Вы можете использовать Reference Assistant extension из галереи расширения Visual Studio.

Используется и работает для Visual Studio 2010.

+2

Вам нужно быть осторожным с веб-проектами. Он сообщает DLL, которые используются как «неиспользуемые». –

+0

Я согласен с Миро. Я попытался использовать это с моим веб-проектом, и он выбрал два десятка ссылок, которые были необходимы для запуска моего веб-приложения (System.Web. *, Ninject. *, EntityFramework, просто чтобы назвать несколько). –

+0

Не работает с проектом MVC. Он удаляет важную DLL как .Helpers и .WebPage –

26

Resharper extension сделает это за вас.

Это расширение поддерживает Visual Studio 2005 через 2017.

Хотя компилятор не будет включать в себя неиспользуемые узлы, посторонние используя операторы и ссылку замедляет Visual Studio и Intellisense, так как есть больше коды инструменты должны учитывать.

+8

, что в нашем проекте было найдено много неиспользуемых ссылок - но их кучу действительно используют ... Поэтому я не доверяю Resharper со ссылками – Offler

+3

Resharper потребляет тонны памяти в больших проектах, когда есть много ссылок, которые в конечном итоге вылетают VS – Cemre

+0

Кажется, что не работает для экспресс-изданий. –

18

Ни для кого приходит сюда в поисках Visual Studio 2012:

Скачать и установить Reference Assistant for Visual Studio 11

Позже вы можете сделать:

enter image description here

+1

Справочный помощник для Visual Studio 11 кажется неточным, он показал мне кучу неиспользуемых ссылок, которые, как я знал, были использованы (установлены через Nuget). –

+1

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

+1

Не работает с проектом MVC. Он удаляет важную DLL как .Helpers и .WebPage –

41

Если вы Resharper (плагин) установлен , вы можете получить доступ к функции, которая позволяет анализировать использованные ссылки через Solution Explorer> (щелкните правой кнопкой мыши) Ссылки> Оптимизация литературы ...

http://www.jetbrains.com/resharper/webhelp/Refactorings__Remove_Unused_References.html

Эта функция не правильно обрабатывать:

  • Dependency впрыскивается сборки
  • Динамически нагруженные узлы (Монтаж.LoadFile)
  • нативный код сборки загружаются через Interop
  • ActiveX управления (COM Interop)
  • Другие творческие способы загрузки сборок

enter image description here

+0

Ваше последнее утверждение «Однако это не идеально, любые сборки, которые зависят от ссылочных сборок в вашем текущем проекте, по-прежнему отмечены как неиспользуемые». на самом деле не проблема. Строка знает, чтобы скопировать ссылки на ваши ссылки. См. Этот ответ: http://stackoverflow.com/a/2290139/26262 –

+0

Отличный инструмент !!! –

-8

Чтобы удалить ссылку на Visual C# В решении Explorer, откройте узел «Ссылки» под узлом проекта. Щелкните правой кнопкой мыши ссылку и нажмите «Удалить».

+3

Это, похоже, не ограничивается только неиспользованным или автоматическим в работе. –

+0

это не автоматическая работа. – Amir

+0

хорошо пробовал, но плохой ответ, а не автоматический, как сказано ранее – Coding4Fun

1

Использование DevExpress, я следовать этим инструкциям:

  1. В VS, перейдите к DevExpress - редактор - Code Cleanup. В разделе «Правила» установите флажок «Удалить неиспользуемые ссылки на пространство имен». Нажмите «ОК».
  2. Щелкните правой кнопкой мыши по решению и выберите «Очистка кода». Очистка работает в течение нескольких минут и заканчивается.
  3. Построить приложение
8

В Visual Studio 2013 это расширение работы: ResolveUR

+4

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится – abarisone

+0

... и VS 2015. –

+8

@abarisone Ваш общий ответ «не использовать ссылку в качестве ответа» действительно должен использоваться только после того, как вы на самом деле ПОСМОТРЕТЬ при ответе , Ссылка является единственной вещью, которая имеет отношение к этому ответу. Это ссылка на плагин VS, поэтому нет ничего другого, что нужно включить. –

7

Некоторые люди предложили использовать удивительный инструмент - Reference Assistant for Visual Studio. Проблема в том, что VS2012 является последней поддерживаемой Visual Studio.Но есть способ, чтобы заставить его работать в VS2013, а;)

А вот как:

1) Скачать Lardite.RefAssistant.11.0.vsix

2) Измените расширение на zip: Lardite.RefAssistant.11.0.vsix ->Lardite.RefAssistant.11.0.zip

3) Распакуйте и откройте файл extension.vsixmanifest в текстовом редакторе

4) Найти все вхождений InstallationTarget Version="[11.0,12.0)" и заменить их InstallationTarget Version="[11.0,12.0]" (обратите внимание на закрывающую скобку)

5) Сохраните файл и пронестись все файлы так, что они находятся на уровне корневой почтовый

6) Измените расширение нового zip к vsix

7) Установить и наслаждайтесь :)

Я проверил его с VS2013, спасибо source за учебник

EDIT Добавить для поддержки VS 2015 Community Edition

<InstallationTarget Version="[14.0,15.0]" Id="Microsoft.VisualStudio.Community" /> 

Значение в скобках

[ – minimum version inclusive. 

] – maximum version inclusive. 

(– minimum version exclusive. 

) – maximum version exclusive. 
+1

Это работает просто отлично! Кажется, это простая опечатка, которая могла быть исправлена ​​много лет назад автором, - но он, похоже, исчез, по крайней мере, на веб-сайте есть ... – wexman

+0

Это не опечатка, а самая высокая поддерживаемая версия VS :). Разработчик должен протестировать его надстройку с каждой новой версией VS и увеличить число, но по какой-то причине они этого не сделали. – VladL

+0

Не забудьте остановить «копировать и вставлять» вещи. :) – Rikki

-6

В VB2008, это работает так:

Project>Add References 

Затем нажмите на вкладку Recent где вы можете просмотреть список использованных в последнее время ссылок. Найдите тот, который вы не хотите, и удалите его. Затем вы закрываете, ничего не добавляя.

+0

Это не проверяет, используется ли ссылка –

7

Для Visual Studio 2013/2015/2017 есть расширение, которое делает именно то, что вы хотите: ResolveUR. То, что это в основном делает:

  • ссылка удаляется в проекте проекта
  • скомпилирован с MSBuild
  • проверка на наличие ошибок сборки
  • восстановить удаленные ссылки, если были ошибки построения.
+0

, только что установленный для VS 2017 Community Edt. - Прекрасно работает. – Thomas

+0

говорит, что есть ошибка сборки, но при сборке ошибки сборки нет, поэтому она не работает. Vs2015 comm edtion – Raghavendra

+0

Вы можете создать проблему на странице github: https://github.com/subatta/ResolveUR/issues –

1

с визуальными студийными версиями 2017 и 2015, вы можете сделать это с помощью кода карты функции, но эта функция доступна только в Enterprise Edition, а не сообщества или Профессиональных версии.

Щелкните правой кнопкой мыши узел проекта в проводнике решений и выберите «Показать на кодовой карте». Это отобразит вашу .dll как единый узел в пустом графике. Щелкните правой кнопкой мыши на этом узле в поле Код и выберите «Показать сборки этих ссылок». Это добавит дополнительный узел, называемый «Внешние», который можно развернуть, чтобы отображать только те сборки, на которые на самом деле ссылаются.

enter image description here

0

Все, что вам нужно, это камень и голый кулак, то вы можете сделать это как пещерный человек.

  1. Удалить неиспользуемые пространства имен (для каждого класса)
  2. Run Debug построить
  3. Скопируйте исполняемый файл и остальные ссылки пространства имен на новое место
  4. Запустите исполняемый
  5. Отсутствует ошибка Reference DLL будет происходить
  6. Копирование необходимых DLL из папки отладки
  7. Повтор 4-6
  8. Gu Gu Ga Ga?
  9. Бросьте ваш камень

Вы также можете полагаться на свои сборки инструменты, чтобы узнать, какие ссылки еще требуется. Это эпоха VS 2017, пещерный человек все еще выжил.

Смежные вопросы