15

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

NuGet 文档截图

我的截图

4

6 回答 6

13

如果您向下滚动到您链接到的 NuGet 文档页面的管理已安装包部分,您将看到管理按钮和说明。

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

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

在此处输入图像描述

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

于 2011-07-06T21:57:44.633 回答
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 文件夹。

于 2011-07-07T02:09:25.883 回答
8

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

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

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

然后你可以关闭 Manage 窗口,并打开控制台(Package Manager Console),然后运行这个命令:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion

注意-Force参数。例如

uninstall-package -Id Unity -Force -Version 3.0.1304.0

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

于 2013-06-06T11:33:39.590 回答
3

我最近有类似的问题。我的项目运行良好,但我无法再通过 NuGet 包管理器添加或删除任何包,因为 EnterpriseLibrary 5.0.505 在源代码中显示为缺失。但尝试恢复或删除它失败,并出现错误“无法找到版本 '5.0.505. of package 'EnterpriseLibrary'”。

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

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

将此与我最近添加包的其他解决方案进行比较,我将其更改为以下解决方案:

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

我从未手动编辑过任何 package.config 文件,所以我不知道不匹配是如何发生的。自从最初包含软件包而不更新配置文件以来,可能参考已更改...?

于 2016-04-28T11:28:23.007 回答
0

我在删除具有依赖关系的 Code first lib CTP5 时遇到问题,卸载没有返回任何消息并且没有删除任何内容。从您需要删除的 packages.config 中删除引用。之后它将不再显示在 nuget 中,您可以重新安装或继续。

于 2013-05-13T08:51:13.263 回答
0

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

我正在评估 Microsoft.AspNet.FriendlyUrls 包,它向我的 ASP.NET Web 应用程序项目/解决方案添加了一个母版页、一个用户控件、一个类代码文件和一个 packages.config 文件。在使用 NuGet 包对话框删除包之前,我犯了一个错误,即从解决方案中手动撤消/删除这些文件。在那一刻,一切都变得混乱了。

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

于 2013-06-10T19:39:42.347 回答