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

时间:2012-08-17 20:33:01

标签: nuget visual-studio-2012

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

12 个答案:

答案 0 :(得分:154)

我找到了解决方法。

  1. 启用包还原和自动检查(选项/包管理器/常规)
  2. 删除包文件夹的全部内容(如果您感到紧张,请删除回收站!)
  3. 管理解决方案的Nuget包
  4. 点击恢复按钮。
  5. NuGet将仅恢复 解决方案中使用的软件包。你最终得到了一套漂亮的,精简的套装。

答案 1 :(得分:103)

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

答案 2 :(得分:15)

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

答案 3 :(得分:8)

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

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

  2. 在左栏中列出了“已安装的包裹”'选择所有'所以你要# 查看已安装软件包的列表和跨越它们的“管理”按钮。

  3. 选择“管理”按钮,您将弹出,取消选中项目名称旁边的复选框,然后单击

  4. 其他工作包管理器将为您完成。

答案 4 :(得分:2)

如果您使用卸载程序包实用程序删除了程序包并从解决方案下的程序包目录中删除了所需的程序包(并且仍然出现错误),则只需在代码编辑器中打开* .csproj文件并手动删除标签。比如说,我想摆脱Nuget包 Xamarin.Forms.Alias ,我从* .csproj文件中删除了这些行。

Removing nuget package from msbuild script

最后,不要忘记在Visual Studio中提示后重新加载项目(更改项目文件后)。我在Visual Studio 2015上尝试过它,但它也适用于Visual Studio 2010及其后续版本。

希望这有帮助。

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

一个NuGet包可以引用另一个NuGet包。因此,请非常小心包间依赖关系。我刚刚卸载了一个Google地图包,随后又卸载了像Newtonsoft,Entity Framework等底层软件包。

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

答案 7 :(得分:1)

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

答案 8 :(得分:0)

其他方式,对我来说最简单的是:

  1. 转到您的Soution,然后右键单击此处。

  2. 选择“Managed NUgets Packages for Solution”选项。打开一个弹出窗口,点击“设置”按钮。这将打开其他弹出窗口,然后搜索:“包管理器”。

  3. 在选项“包管理器”中,您还有两个选项(I.常规II。包源)在每个选项中取消选中所有复选框。

  4. 此步骤会从您的项目中停用NuGet。

    我希望真的能帮到你。

答案 9 :(得分:0)

解决方案1 ​​

使用powershell管道获取软件包并在这样的单个语句中删除

Get-Package | Uninstall-Package

解决方案2

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

  1. 使用GetPackages获取软件包列表
  2. 下载 Nimble text 软件
  3. 在NimbleText中复制GetPackages的输出(对于列表窗口中的每一行)
  4. 如果需要,将列分隔符设置为(
  5. 键入Uninstall-Package $0(使用样式窗口替换)
  6. 复制结果并将其粘贴到 Package Manage Console

那是所有人。

答案 10 :(得分:0)

在“程序包管理器”控制台窗口中,通常可以使用您用来安装程序包的任何命令来卸载该程序包。只需将 INSTALL 命令替换为 UNINSTALL

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

Install-Package PowerTCPTelnet -Version 4.4.9

要卸载相同文件,命令为:

Uninstall-Package PowerTCPTelnet -Version 4.4.9

答案 11 :(得分:-2)