2011-07-06 153 views
15

我试图通过卸载已安装的NuGet一些软件包。根据所描述的here文档,我应该看到一个卸载按钮(第一下图)当我选择安装的软件包。但是,我只看到一个管理按钮(下面的第二个屏幕截图)。任何人都可以请告诉我如何卸载软件包?问题与卸载的NuGet软件包

NuGet Doc Screenshot

My Screenshot

回答

12

最后,我发现我有手动编辑的.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窗口“已安装的消失包“页面。只剩下一个包,我现在可以看到“卸载”按钮。

enter image description here

编辑: 我也不得不删除我的解决方案目录中的packages文件夹。

+1

在我的情况下,解决方案文件中没有引用,但是从打包目录中删除包文件夹并没有诀窍。 –

+1

+1在我的情况下,我在我的解决方案文件中有引用,但删除软件包目录中的包文件夹就足够了。 – fiberOptics

+0

您可以使用软件包管理器控制台执行此操作,正如我在答案中解释的那样。你不能完全确定你正在做所有你需要做的事情。使用包管理器控制台在这方面更安全。 – JotaBe

13

如果您向下滚动到你链接到你会看到管理按钮和解释的NuGet文档页面的Managing Installed Packages部分。

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

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

enter image description here

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

+2

,但它不会从我的解决办法删除软件包。这些软件包仍然显示在“已安装的软件包”页面下,其旁边有“管理”按钮。另外,我的解决方案目录中有一个“packages”文件夹。你知道如何从“已安装的软件包”页面删除软件包吗?谢谢。 – StarCub

+1

仅当包中未安装任何项目时才从解决方案中删除包。因此,如果您不取消检查所有内容,它仍将安装在解决方案中。如果您在解决方案级别对话框中查看详细信息窗格,则可以查看哪个项目具有哪个包。 – davidfowl

0

我有一个问题,删除代码第一LIB CTP5是有相关性,卸载不返回任何消息,也没有删除任何东西。从packages.config中删除需要删除的引用。之后,它不会在nuget中显示,并且您可以重新安装或继续。

8

有时有禁止使用卸载软件包的依赖关系,但你需要这样做呢(即,如果您不小心安装两个不同版本的软件包的依赖包)。

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

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

然后你就可以关闭管理窗口,打开控制台(包管理器控制台),并运行此命令:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion 

注意-Force参数。例如

uninstall-package -Id Unity -Force -Version 3.0.1304.0 

该命令允许当它被安装在平行于第2版,不能throgh管理窗口中完成卸载版本3。

0

使用VS IDE管理的NuGet后封装对话框或包管理器控制台,您可能需要手动删除的文件系统是包的一部分不在包文件夹的解决方案文件或其他文件。

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

正如其他人所说,删除包文件夹是解决办法。但后来我不得不手动计算出该文件夹以外的其他文件,这些文件也应该被删除。

2

最近,我有类似的问题。我的项目工作正常,但无法通过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文件,所以我不知道错配是怎么发生的。也许参考文件因为包含软件包而改变了,而没有更新配置文件...?