Удалите неиспользованные ссылки (! = “использующий”)

100
задан Leniel Maccaferri 4 June 2012 в 23:17
поделиться

4 ответа

* Примечание: см. http://www.jetbrains.net/devnet/message/5244658 для получения другой версии этого ответа.

Читая сообщения, похоже, есть некоторая путаница в отношении исходного вопроса. Позвольте мне попробовать.

Исходный пост действительно задает вопрос: «Как мне определить и удалить ссылки из одного проекта Visual Studio на другие проекты / сборки, которые не используются?» Плакат хочет, чтобы сборки больше не отображались как часть вывода сборки.

В этом случае ReSharper может помочь вам идентифицировать их, но вы должны удалить их самостоятельно.

Для этого откройте «Ссылки» в браузере решений, щелкните правой кнопкой мыши каждую сборку, на которую указывает ссылка, и выберите «Найти зависимый код». См .:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

Вы получите:

  1. Список зависимостей от этой ссылки в окне браузера или

  2. Диалоговое окно с сообщением «Код, зависящий от модуля XXXXXXX, не найден».

Если вы получили второй результат, вы можете затем щелкнуть правой кнопкой мыши ссылку, выбрать «Удалить» и удалить ее из проекта.

] Хотя вам нужно делать это «вручную», то есть по одной ссылке за раз, он выполнит свою работу. Если кто-то каким-то образом автоматизировал это, мне интересно услышать, как это было сделано.

Вы можете в значительной степени игнорировать те, которые находятся в .Net Framework, поскольку они обычно не копируются в выходные данные вашей сборки (обычно - хотя и не обязательно для приложений Silverlight).

Некоторые сообщения, похоже, отвечают на вопрос : «Как мне удалить из файла исходного кода предложения using (C #), которые не нужны для разрешения любых ссылок в этом файле».

В этом случае ReSharper действительно помогает несколькими способами:

  1. Идентифицирует неиспользуемые предложения using во время обнаружения ошибок на лету. Они отображаются как предупреждения проверки кода - код будет выделен серым цветом (по умолчанию) в файле, и ReSharper предоставит подсказку для его удаления:

    http://www.jetbrains.com/resharper/features/code_analysis.html # On-the-fly_Error_Detection

  2. Позволяет автоматически удалять их как часть процесса очистки кода:

    http: // www. jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

Наконец, поймите, что ReSharper выполняет статический анализ кода вашего решения. Таким образом, если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс, - она ​​ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны.

если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс - она ​​ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны.

если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс - она ​​ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны.

55
ответ дан 24 November 2019 в 04:55
поделиться

Resharper сделает это для Вас (и так себе намного больше!)

4
ответ дан Chris Canal 24 November 2019 в 04:55
поделиться

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

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

0
ответ дан Benjol 24 November 2019 в 04:55
поделиться

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

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

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

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

7
ответ дан 24 November 2019 в 04:55
поделиться