* Примечание: см. http://www.jetbrains.net/devnet/message/5244658 для получения другой версии этого ответа.
Читая сообщения, похоже, есть некоторая путаница в отношении исходного вопроса. Позвольте мне попробовать.
Исходный пост действительно задает вопрос: «Как мне определить и удалить ссылки из одного проекта Visual Studio на другие проекты / сборки, которые не используются?» Плакат хочет, чтобы сборки больше не отображались как часть вывода сборки.
В этом случае ReSharper может помочь вам идентифицировать их, но вы должны удалить их самостоятельно.
Для этого откройте «Ссылки» в браузере решений, щелкните правой кнопкой мыши каждую сборку, на которую указывает ссылка, и выберите «Найти зависимый код». См .:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
Вы получите:
Список зависимостей от этой ссылки в окне браузера или
Диалоговое окно с сообщением «Код, зависящий от модуля XXXXXXX, не найден».
Если вы получили второй результат, вы можете затем щелкнуть правой кнопкой мыши ссылку, выбрать «Удалить» и удалить ее из проекта.
] Хотя вам нужно делать это «вручную», то есть по одной ссылке за раз, он выполнит свою работу. Если кто-то каким-то образом автоматизировал это, мне интересно услышать, как это было сделано.
Вы можете в значительной степени игнорировать те, которые находятся в .Net Framework, поскольку они обычно не копируются в выходные данные вашей сборки (обычно - хотя и не обязательно для приложений Silverlight).
Некоторые сообщения, похоже, отвечают на вопрос : «Как мне удалить из файла исходного кода предложения using (C #), которые не нужны для разрешения любых ссылок в этом файле».
В этом случае ReSharper действительно помогает несколькими способами:
Идентифицирует неиспользуемые предложения using во время обнаружения ошибок на лету. Они отображаются как предупреждения проверки кода - код будет выделен серым цветом (по умолчанию) в файле, и ReSharper предоставит подсказку для его удаления:
http://www.jetbrains.com/resharper/features/code_analysis.html # On-the-fly_Error_Detection
Позволяет автоматически удалять их как часть процесса очистки кода:
Наконец, поймите, что ReSharper выполняет статический анализ кода вашего решения. Таким образом, если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс, - она ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны.
если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс - она ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны. если у вас есть динамическая ссылка на сборку - скажем, через отражение или сборку, которая динамически загружается во время выполнения и доступна через интерфейс - она ее не получит. Ничто не заменит понимание вашей кодовой базы и зависимостей проекта во время работы над своим проектом. Я считаю, что функции ReSharper очень полезны.Resharper сделает это для Вас (и так себе намного больше!)
Учитывая, что VisualStudio (или он msbuild?) обнаруживает неиспользованные ссылки и не включает их в выходной файл, можно записать сценарий, который анализирует ссылки из csproj и сравнивает это с блоками, на которые ссылаются, обнаруженными отражением на выводе проекта.
, Если Вы мотивированы...
Удаление неиспользуемых ссылок - это функция, которую Visual Studio 2008 уже поддерживает. К сожалению, только для проектов VB .NET.
Я сделал предложение в Microsoft Connect, чтобы получить эту функцию и для проектов C #:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx? FeedbackID = 510326
Если вам тоже нравится эта функция, вы можете проголосовать за мое предложение.