2

如何让 ReSharper 的“删除未使用的引用”功能处理通过 NuGet 包添加的引用?

嗨,大家好。我正在使用 Visual Studio 2015 处理 C# 中的多项目解决方案。我有一个安装在解决方案中的所有项目上的 NuGet 包(由内部开发的多个通用库组成)。现在,所有项目都引用了包中包含的每个 DLL,而不管项目实际使用的 DLL。这简化了大约 50 个项目的引用管理,因为我可以确定每个项目都有它需要的引用。该计划是随后与 ReSharper 一起删除未使用的引用。不幸的是,它似乎不起作用。

以下是我尝试过的事情:

  • 如果我从参考管理器的程序集列表中添加参考,ReSharper 可以将其删除。
  • 如果我从参考管理器的项目列表中添加参考,ReSharper 可能会也可能不会删除它。
  • 如果我使用参考管理器中的浏览功能添加参考,ReSharper 可能会也可能不会删除它。
  • 如果我在解决方案或项目上通过上下文菜单添加 NuGet 包,ReSharper 无法将其删除。
  • 我尝试编辑原始 *.csproj 项目文件,以确定在将程序集添加为 NuGet 包的一部分时,引用程序集的方式是否有任何特殊差异。我找不到原因;将 NuGet 包中的程序集的 Reference 元素更改为与在 Reference Manager 中通过各种方式添加的完全一样,不会产生任何变化。
  • 我尝试编辑并最终删除 packages.config 文件,除了告诉 NuGet 包管理器没有安装任何包外,它什么也没做。删除 packages.config 文件后,我重复编辑 *.csproj 文件,但仍然无效。
  • 在 Visual Studio 的“属性”窗口中试验参考属性时,我找不到任何原因。
  • 我删除了 ReSharper 缓存,但没有解决问题。
  • 新创建的项目有同样的问题(ReSharper 无法删除 NuGet 包添加的引用)。

这是我的设置:

  • Microsoft Visual Studio 企业版 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

我对可能的解决方案没有任何想法,任何帮助将不胜感激。

先感谢您!

4

1 回答 1

4

它将被添加到 v10.1(又名2016.1)中,现在处于抢先体验阶段:

Optimize References 学习处理现在显示在与项目包含的所有常规引用相同的工具窗口中的 NuGet 引用。ReSharper 还添加了一个新的分组来显示可能未使用的引用,这些引用在项目中具有依赖关系,因此不能被认为是多余的。

于 2016-03-11T20:50:03.880 回答