如何删除解决方案中未被任何项目引用的NuGet包?

How*_*ley 138 nuget visual-studio-2012

不知何故,在升级到VS2012和.NET 4.5期间,我设法让NuGet感到困惑.包管理器(以及包文件夹)中出现了一些我无法删除的包(我相信它们是旧的ASP.NET NuGet包,它们已被新版本的新包名替换.它们每个都只有一个Manage 按钮- 但没有卸载按钮.当你想看看它们的使用位置时,你可以看到它们没有被解决方案的项目引用?它们没有显示卸载?

Jam*_*s L 158

我找到了解决方法.

  1. 启用包还原和自动检查(选项/包管理器/常规)
  2. 删除包文件夹的全部内容(如果您感到紧张,请删除回收站!)
  3. 管理Nuget包以获得解决方案
  4. 单击"还原"按钮.

NuGet将恢复解决方案中使用的包.最终得到了一套漂亮的,简化的软件包.

  • @ sprinter252,如果你正在使用包恢复,那么你不应该首先将包检查到源代码控制中.这是使用包还原的主要好处之一.作为转换为包还原的一部分,应该在packages文件夹上放置一个"忽略"规则. (4认同)

Pav*_*shy 105

您可以使用带有以下命令的Package Manager控制台:Uninstall-Package PackageId将其删除,或者只删除解决方案文件夹下的"packages"文件夹中的包文件夹.有关Package Manager Console的更多信息,请访问:http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference

  • 谢谢帕维尔.我有一种感觉,你可以删除文件夹.这有点令人不安,因为我必须手动确保没有引用任何包(它们似乎不是).我仍然很想知道为什么包管理器没有显示卸载(或删除)按钮. (8认同)
  • 解决方案级别的程序包管理器显示所有程序包对解决方案中项目的引用以及放置在packages文件夹中但未引用的其他所有程序包.对于此包,在UI中没有卸载功能.我同意这是行为不正确的结果,但在这种情况下你应该手动检查它.并且当您确定需要它时,删除包或重新安装. (2认同)

Abd*_*zad 16

首先打开包管理器控制台.然后从下拉列表中选择您的项目.并运行以下命令以卸载nuget包.

Get-Package

获取已安装的所有软件包.

然后

Uninstall-Package PagedList.Mvc

---卸载名为PagedList.MVC的包

信息

PM> Uninstall-Package PagedList.Mvc
Successfully removed 'PagedList.Mvc 4.5.0.0' from MCEMRBPP.PIR.
Run Code Online (Sandbox Code Playgroud)


小智 8

如果要删除/卸载应用于解决方案中多个项目的 Nuget包,请转到:

  1. 工具 - > Nuget包管理器 - >管理解决方案的Nuget包

  2. 在左侧列中,"已安装的软件包"选择"全部",因此您将看到已安装软件包的列表和跨越它们的"管理"按钮.

  3. 选择"管理"按钮,弹出窗口,取消选中项目名称旁边的复选框,然后单击"确定"

其余的工作包管理器将为您完成.


har*_*ris 6

VS2019 > 工具 > 选项 > Nuget 包管理器 > 常规 > 单击“清除所有 Nuger 缓存”