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

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

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


当前回答

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


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

其他回答

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

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

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

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

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

你可以使用Visual Studio扩展ResolveUR -解析未使用的引用。

通过解决方案和项目节点的菜单项解决方案资源管理器工具窗口解决Visual Studio 2012/2013/2015项目中未使用的引用,包括nuget引用

这不是一项容易的任务,所以我建议在此之前进行备份和/或提交,以便在出现错误时进行回滚。

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

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

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


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