如何在解决方案中找到未使用的NuGet包?

我有很多解决方案,其中安装了很多包,其中很多都被标记为有更新。

但是,我担心可能会有破坏性的更改,因此我首先想通过删除任何未使用的包来进行清理。


当前回答

Visual Studio 2019(版本16.9)内置了删除未使用的包功能,我们现在需要手动启用它。

进入工具>选项>文本编辑器> c# >高级>(在分析部分下)勾选显示“删除未使用的引用”命令

Visual Studio 16.10版本提供了删除未使用的引用特性。右键单击项目>删除未使用的引用。

其他回答

在Visual Studio 2019中,从最新版本和Visual Studio 2022开始,您可以删除之前评论中报道的未使用的包,但仅限于SDK风格的项目。 如果你尝试旧的项目,比如。net Framework,你不会看到这个选项。 为了验证,你可以创建两个简单的控制台应用:一个使用。net Core或更高版本,另一个使用。net Framework 4.7或4.8。


请参考:删除未使用的引用

在visual studio 2019中右键单击Dotnet核心项目,您将看到一个删除未使用引用的选项。

我不认为有一个默认的方法来发现这一点。主要原因是这些包可以做各种各样的事情,从引用程序集到向项目注入源代码。你可能想检查一下Nuget。扩展。codeplex上的以下线程讨论了nuget包的审计报告。

http://nuget.codeplex.com/discussions/429694

(NuGet已从Codeplex移动到GitHub。以上档案链接:) https://web.archive.org/web/20171212202557/http://nuget.codeplex.com:80/discussions/429694

这是体力劳动,但很有效。

使用ReSharper或类似的代码分析工具来识别项目中任何未使用的引用,并卸载相应项目中的nuget。 有时卸载的NuGet仍然停留在“管理NuGet包”对话框中的“已安装包”和“更新”列表中。关闭Visual Studio,然后删除packages文件夹,然后重新打开解决方案并恢复您的块。

ReSharper 2016.1有一个功能,删除未使用的NuGet。

它可以在解决方案上运行,也可以在解决方案中的每个项目上运行,它做以下事情:

分析代码并收集对程序集的引用。 基于程序集的使用构建NuGet使用图。 没有内容文件、未使用本身和未使用依赖项的包被假定为未使用并建议删除。

不幸的是,这对项目不起作用。json项目(RSRP-454515)和ASP。NET核心项目(RSRP-459076)