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

在升级到 VS2012和。NET 4.5,我已经设法让 NuGet 混淆了。有些软件包出现在软件包管理器(和软件包文件夹)中,我无法删除它们(我相信它们是遗留的 ASP.NET NuGet 软件包,已经被新版本的新软件包名所取代。它们都只有一个 管理按钮——但是没有卸载按钮。当您查看它们在哪里被使用时,您可以看到它们没有被任何解决方案的项目引用?他们是 没有显示一个卸载?

186497 次浏览

您可以使用包管理器控制台与命令: Uninstall-Package PackageId删除它,或只是从解决方案文件夹下的“包”文件夹中删除包文件夹。 你可以在这里找到更多关于 Package Manager Console 的信息: < a href = “ http://docs.nuget.org/docs/reference/Package-Manager-sole-powershell-reference”> http://docs.nuget.org/docs/reference/Package-Manager-Console-powershell-reference

另一种选择是,在解决方案的任何项目中安装要删除的未使用的软件包,然后卸载它,Nuget 也会删除它。

这里需要一个合适的卸载程序。

我找到了一个解决办法。

  1. 启用包恢复和自动检查(选项/包管理器/常规)
  2. 删除软件包文件夹的全部内容(如果你紧张的话,删除到回收站!)
  3. 管理解决方案的 Nuget 软件包
  4. 单击恢复按钮。

NuGet 将恢复解决方案中使用的包 只有

首先打开包管理器控制台。然后从下拉列表中选择您的项目。运行以下命令卸载 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.

如果要使用 VisualStudio 选项,请参见 如何从现有 VisualStudio 解决方案中删除 Nuget 软件包:

第一步:

在 Visual Studio 中,转到 Tools/NuGet Package Manager/Manage NuGet Packages for Solution..。

第二步:

从当前解决方案中取消检查项目

第三步:

取消选择项目并按“确定”

如果您想删除/卸载应用于 解决方案中的多个项目的 Nuget 软件包,请点击:

  1. 工具-> Nuget 软件包管理器-> 为解决方案管理 Nuget 软件包

  2. 在“已安装包”的左栏中选择“全部”,因此您将 查看已安装的软件包列表和跨其中的“管理”按钮。

  3. 选择 Manage 按钮,你会看到一个弹出窗口,取消选中项目名称的复选框,并确定它

剩下的工作包管理器将为您完成。

一个 NuGet 包可以引用另一个 NuGet 包。因此,请对包间依赖性非常小心。我只是卸载了一个谷歌地图软件包,然后它就卸载了一些底层软件包,比如 Newtonsoft,实体框架等等。

因此,从包文件夹中手动删除特定的包会更安全。

如果您已经使用 卸载-软件包实用程序删除了包,并且从解决方案下的包目录中删除了所需的包(并且仍然出现错误) ,那么只需打开 * 。代码编辑器中的 csproj 文件,并手动删除标记。例如,我想去掉 Nuget 包 Xamarin 语,表格,化名,然后从 * 中删除了这些行。Csproj 文件。

Removing nuget package from msbuild script

最后,不要忘记在 VisualStudio 中提示重新加载项目(在更改项目文件之后)。我在 VisualStudio2015上试过,但它应该可以在 VisualStudio2010上使用,以后也可以。

希望这个能帮上忙。

解决方案1

使用 powershell 管道获取包并像下面这样在单个语句中删除

Get-Package | Uninstall-Package

解决方案2

如果要卸载选定的软件包,请按照以下步骤操作

  1. 使用 GetPackages获取包列表
  2. 下载 译自: 美国《科学》杂志网站(http://nimbletext.com)软件
  3. 在 NimbleText 中复制 GetPackages的输出(对于列表窗口中的每一行)
  4. 如果需要,将列分隔符设置为 (
  5. 类型 Uninstall-Package $0(使用模式窗口替换)
  6. 复制结果并粘贴到 包管理控制台

就这样吧,各位。

在 PackageManager 控制台窗口中,通常可以使用任何用于安装软件包的命令来卸载该软件包。只需将 安装命令替换为 卸载

例如,要安装 PowerTCPTelnet,命令是:

Install-Package PowerTCPTelnet -Version 4.4.9

要卸载相同的程序,命令是:

Uninstall-Package PowerTCPTelnet -Version 4.4.9

VS2019 > 工具 > 选项 > Nuget 软件包管理器 > 常规 > 点击“清除所有 Nuger 缓存”按钮