【发布时间】:2016-06-27 05:49:22
【问题描述】:
如何让 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 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
我对可能的解决方案没有任何想法,我们将不胜感激。
提前谢谢你!
【问题讨论】:
标签: visual-studio-2015 nuget resharper nuget-package resharper-10.0