卸载NuGet软件包时出现问题

卸载NuGet软件包时出现问题,nuget,nuget-package,Nuget,Nuget Package,我正在尝试卸载NuGet安装的一些软件包。根据描述的文档,当我选择安装的软件包时,我应该会看到一个卸载按钮(下面的第一个屏幕截图)。但是,我只看到一个管理按钮(下面的第二个屏幕截图)。有人能告诉我如何卸载这些软件包吗 如果向下滚动到链接到的NuGet文档页面的部分,您将看到管理按钮和说明 在中,引入了一项新功能,允许您在解决方案资源管理器中选择解决方案,并一步从多个项目中添加/删除包。以前,您必须在解决方案资源管理器中选择每个项目,并从每个项目中一次添加/删除一个包 如果单击“管理”按钮,将显

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

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

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

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


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

最后,我发现我必须手动编辑.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”页面中消失。现在只剩下一个软件包了,我可以看到“卸载”按钮了

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

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

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

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

在转到控制台之前,您应该打开Manage NuGet Packages窗口,并记下您的包的Id和版本,当您单击包时,它会显示在右侧窗格中

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

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion
注意-Force参数。比如说

uninstall-package -Id Unity -Force -Version 3.0.1304.0

此命令允许在与版本2并行安装时卸载版本3,无法通过“管理”窗口执行此操作。

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

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


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

我最近也遇到了类似的问题。我的项目运行良好,但我无法再通过NuGet package Manager添加或删除任何包,因为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文件,因此我不知道不匹配是如何发生的。可能由于最初包含包而没有更新配置文件,引用发生了更改…?

但它没有从我的解决方案中删除包。软件包仍显示在“已安装软件包”页面下,旁边有“管理”按钮。此外,在我的解决方案目录中还有一个“packages”文件夹。您知道如何从“已安装的软件包”页面中删除软件包吗?谢谢。只有在解决方案未安装在任何项目中时,才会从解决方案中删除包。因此,如果您不取消检查所有内容,它仍将安装在解决方案中。如果在“解决方案级别”对话框中查看“详细信息”窗格,您可以看到哪个项目有哪个包。在我的情况下,解决方案文件中没有引用,但从打包目录中删除包文件夹起了作用。+1在我的情况下,我的解决方案文件中有引用,但是删除包目录中的包文件夹就足够了。正如我在回答中所解释的,您可以使用包管理器控制台来完成。而且你不能绝对肯定你正在做所有你需要做的事情。在这方面,使用包管理器控制台更安全。