卸载NuGet包时出现问题

Sta*_*Cub 15 nuget nuget-package

我正在尝试卸载NuGet安装的一些软件包.根据这里描述的文档,当我选择已安装的软件包时,我会看到一个卸载按钮(下面的第一个屏幕截图).但是,我只看到一个Manage按钮(下面的第二个截图).任何人都可以告诉我如何卸载包?

NuGet Doc截图

我的截图

Mat*_*ard 13

如果向下滚动到您链接到的NuGet文档页面的Managing Installed Packages部分,您将看到Manage按钮和说明.

在NuGet 1.4中,引入了一项新功能,允许您在解决方案资源管理器中选择解决方案,并在一个步骤中添加/删除多个项目中的包.以前,您必须在解决方案资源管理器中选择每个项目,并一次添加/删除每个项目中的包.

如果单击"管理"按钮,将显示"选择项目"对话框,您可以在其中取消选中要从中卸载NuGet包的项目.

在此输入图像描述

如果在解决方案资源管理器中选择项目而不是解决方案,则可以从该选定项目中添加/删除包.在这种情况下,您将只看到"安装"和"卸载"按钮.

  • 但它不会从我的解决方案中删除包.这些包仍然显示在"已安装的包"页面下,旁边有"管理"按钮.此外,我的解决方案目录中有一个"packages"文件夹.您知道如何从"已安装的软件包"页面中删除软件包吗?谢谢. (2认同)

Sta*_*Cub 13

最后,我发现我必须手动编辑.sln解决方案文件并删除这些行:

GlobalSection(ExtensibilityGlobals) = postSolution
        EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)

删除解决方案文件中的上述行后,这些包在NuGet Packages窗口"Installed package"页面中消失.只剩下一个包了,我现在可以看到"卸载"按钮.

在此输入图像描述

编辑: 我还必须删除解决方案目录中的packages文件夹.


Jot*_*aBe 8

有时存在不允许卸载程序包的依赖项,但无论如何都需要这样做(即,如果您无意中安装了具有依赖项的程序包的两个不同版本).

发生这种情况时,卸载软件包的唯一方法是强制卸载,这只能通过软件包管理器控制台完成.

在进入控制台之前,您应该打开Manage NuGet Packages窗口,记下软件包的Id和Version,当您单击软件包时,它会出现在右侧窗格中.

然后,您可以关闭"管理"窗口,然后打开控制台(程序包管理器控制台),并运行以下命令:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion
Run Code Online (Sandbox Code Playgroud)

请注意-Force参数.例如

uninstall-package -Id Unity -Force -Version 3.0.1304.0
Run Code Online (Sandbox Code Playgroud)

此命令允许在与版本2并行安装时卸载版本3,这不能通过"管理"窗口完成.