卸载NuGet包时出现问题

时间:2011-07-06 21:42:21

标签: nuget nuget-package

我正在尝试卸载NuGet安装的一些软件包。根据{{​​3}}所述的文档,当我选择已安装的软件包时,我会看到卸载按钮(下面的第一个屏幕截图)。但是,我只看到管理按钮(下面的第二个屏幕截图)。谁能告诉我如何卸载软件包?

NuGet Doc Screenshot

My Screenshot

6 个答案:

答案 0 :(得分:13)

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

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

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

enter image description here

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

答案 1 :(得分: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

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

enter image description here

修改 我还必须删除解决方案目录中的packages文件夹。

答案 2 :(得分:8)

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

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

在进入控制台之前,您应该打开“管理NuGet包”窗口,并记下包的ID和版本,当您单击包时,会显示在右侧窗格中。

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

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion

请注意 -Force 参数。例如

uninstall-package -Id Unity -Force -Version 3.0.1304.0

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

答案 3 :(得分:3)

我最近遇到过类似的问题。我的项目工作正常但我无法再通过NuGet包管理器添加或删除任何包,因为EnterpriseLibrary 5.0.505在源代码中显示为缺失。但尝试恢复或删除它失败,并显示错误“无法找到包''EnterpriseLibrary'的版本5.0.505。”

我追溯到在packages.config文件中有以下引用:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" />

将此与我最近添加软件包的其他解决方案相比较,我将其更改为以下内容,解决了以下问题:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" />

我从未手动编辑过任何package.config文件,因此我不知道错配是如何发生的。也许引用改变了,因为最初包括包而不更新配置文件......?

答案 4 :(得分:0)

我有一个问题是删除具有依赖性的Code first lib CTP5,uninstall没有返回任何消息并且没有删除任何内容。删除需要删除的packages.config中的引用。之后它将不再显示在nuget中,您可以重新安装或继续使用。

答案 5 :(得分:0)

使用VS IDE管理NuGet软件包对话框或软件包管理器控制台后,您可能必须手动删除文件系统上的解决方案文件或其他文件,这些文件是软件包文件夹中不属于软件包文件夹的一部分。

我正在评估Microsoft.AspNet.FriendlyUrls包,它将母版页,用户控件,类代码文件和packages.config文件添加到我的ASP.NET Web应用程序项目/解决方案中。在使用NuGet Packages对话框删除包之前,我错误地从解决方案中手动撤消/删除这些文件。那一切都让人感到困惑。

正如其他人所说,删除packages文件夹是解决方案。但后来我不得不手动找出该文件夹外的其他文件也应删除。