ReSharper "Удалить неиспользуемые ссылки" не удаляет ссылки, добавленные через пакеты NuGet

Как заставить функцию ReSharper "Удалить неиспользуемые ссылки" работать с ссылками, добавленными через пакеты NuGet?

Всем привет. Я использую Visual Studio 2015 для работы над многопроектным решением на C#. У меня есть пакет NuGet (составленный из нескольких общих библиотек, разработанных внутри), который устанавливается на все проекты в рамках решения. Все проекты теперь имеют ссылки на каждую DLL, которая была включена в пакет, независимо от фактического использования DLL в проекте. Это упрощает управление ссылками для примерно 50 проектов, так как я могу быть уверен, что у каждого проекта есть ссылки, в которых он нуждается. План состоял в том, чтобы затем связаться с ReSharper, чтобы удалить неиспользованные ссылки. К сожалению, это не похоже на работу.

Вот что я пробовал:

  • Если я добавлю ссылку из списка сборок в Менеджере ссылок, ReSharper сможет ее удалить.
  • Если я добавлю ссылку из списка проектов в Менеджере ссылок, ReSharper может или не может удалить ее.
  • Если я добавлю ссылку с помощью функции "Обзор" в Диспетчере ссылок, ReSharper может удалить или не удалить ее.
  • Если я добавлю пакет NuGet по контекстному меню в решение или проект, ReSharper не сможет его удалить.
  • Я попытался отредактировать сырые файлы проекта *.csproj, чтобы определить, есть ли какие-либо особые различия в способах ссылки на сборки, когда они добавляются как часть пакета NuGet. Я не смог найти причину; изменение элемента Reference для сборок из пакета NuGet, чтобы оно выглядело точно так же, как добавление различными способами в Reference Manager, не дало никаких изменений.
  • Я попытался отредактировать и, наконец, удалить файл packages.config, который ничего не сделал, кроме как сообщить диспетчеру пакетов NuGet, что пакеты не установлены. Я повторил редактирование файла *.csproj после удаления файла packages.config, который все еще не работал.
  • Я не смог найти никаких причин при экспериментировании со ссылочными свойствами в окне свойств Visual Studio.
  • Я удалил кэши ReSharper, которые не решили проблему.
  • Вновь созданные проекты имеют ту же проблему (ReSharper не может удалить ссылки, добавленные пакетами NuGet).

Вот мои настройки:

  • Microsoft Visual Studio Enterprise 2015 - обновление 14.0.24720.00 1
  • Диспетчер пакетов NuGet - 3.3.0
  • ReSharper Ultimate - 10.0.2

Вот ссылка на страницу справки ReSharper для этой функции: https://www.jetbrains.com/resharper/help/Refactorings__Remove_Unused_References.html

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

Заранее спасибо!

1 ответ

Решение

Он будет добавлен в v10.1 (он же 2016.1), который сейчас находится в раннем доступе:

Оптимизировать ссылки научится обрабатывать ссылки NuGet, которые теперь отображаются в том же окне инструментов, что и все обычные ссылки, содержащиеся в проекте. ReSharper также добавляет новую группировку для отображения, возможно, неиспользуемых ссылок, которые имеют зависимости в проекте и, таким образом, не могут считаться избыточными.

Другие вопросы по тегам