无法完全卸载一个或多个软件包

时间:2013-08-19 00:10:19

标签: nuget

我有一个ASP.NET MVC 4应用程序。我使用NuGet来更新创建应用程序时安装的所有NuGet包。其中一个软件包是 Microsoft.Bcl.Build

更新后,NuGet在其窗口底部显示以下消息: NuGet error showing "One or more packages could not be completely uninstalled: Microsoft.Bcl.Build.1.0.7. Restart Visual Studio to finish uninstall."

我已经多次重启Visual Studio,但消息仍然存在。当我检查已安装的软件包时,确实显示软件包的更新版本(1.0.8)存在。

我该如何解决这个问题?

9 个答案:

答案 0 :(得分:78)

不要删除所有~/packages,而是查看*.deleteme中是否有~/packages个文件并将其删除。然后重新启动Visual Studio。

答案 1 :(得分:47)

我认为这个问题是由于软件包是只读的,或者是在文件系统级别无法访问的。

源代码管理下的软件包

临时解决方法(未经测试)

在告诉NuGet重新启动Visual Studio以删除软件包之前,请检查整个软件包文件夹。

永久解决方案

我发现可以通过从源代码管理中删除软件包而不是使用NuGet Package Restore来永久解决这个问题。

不受源代码管理的软件包

临时解决方案

我通过从解决方案的 packages 文件夹中删除引用相关软件包的所有文件来解决这个问题。具体来说,这些是:

  1. 文件夹: Microsoft.Bcl.Build.1.0.7
  2. 文件: Microsoft.Bcl.Build.1.0.7.deleteme

答案 2 :(得分:8)

就我而言,相关的包文件夹仍保留在~\packages中,尽管它们是空的。我删除了文件夹并重新启动了Visual Studio,这个警告就消失了。

答案 3 :(得分:2)

1)删除整个~\packages文件夹。

2)重新启动VS

3)转到Manage NuGet PackagesRestore

答案 4 :(得分:2)

我刚删除了解决方案文件夹中Packages文件夹中有错误的每个包的文件夹,还删除了.deleteme文件,一切正常!

答案 5 :(得分:1)

我同意,当您的packages文件夹受源代码管理时,可能会发生这种情况。如果您想在那里使用它,而不是删除绑定,您可以检查全部,使用NuGet包管理器删除包,然后在病房后检查。

答案 6 :(得分:1)

根据我的经验,我在这个帖子上找到了答案,但是上面使用了几个不同答案的组合,所以我想我会分享我找到的答案。

我和“Microsoft.Bcl.Build”作为原始海报有完全相同的问题。我一直在尝试使用NuGet更新其他功能的引用,并且遇到了一些更新问题(兼容性然后回滚)。在此NuGet失败后,我开始收到此错误。

我最初使用了选定的答案和Jedidja的答案,并且能够让它发挥作用,但它只是部分解决了我的问题。它确实修复了VS重启错误,但它导致TFS的下游问题,因为我无法再检查项目,因为它期望“* .deleteme”文件。这让我思考,所以我做了一些测试。当我从回收站恢复文件时,我再次开始重新启动错误。

这是我偏离发布的答案并完全解决我的问题版本的地方。

这次我检查了TFS时,项目检查了所有内容(在我删除了“* .deleteme”文件后使用NuGet更新项目之后)。一旦检查了所有内容,我注意到该文件仍在等待登记,所以我再次检查了解决方案并且TFS接受了该文件,但它是作为删除....假设它在第一次检查然后VS自动删除了需要第二次办理登机手续的。无论如何....在最后一次挂起的更改签入之后,文件已经消失,VS不再抱怨需要重新启动。我无法肯定地说,因为问题已经消失,但我感觉如果我在删除文件之前检查了代码,它可能在没有手动文件操作的情况下解决了问题。

答案 7 :(得分:0)

**大家好。**

我这样解决了这个问题。

  1. 如果您有源代码管理,则以管理员身份运行vs(这很重要)

  2. 解决方案包中的
  3. - >删除有关包的事情。  样本 - >我删除了所有实体框架版本文件夹。

  4. 重启vs

  5. 打开解决方案和解决方案右键单击 - >管理此解决方案的nuget包。 你会看到恢复按钮:)恢复
  6. 就是这样。

答案 8 :(得分:0)

如果您使用的是Entity Framework 6,则可以安装NuGet包" EntityFramework.SqlServerCompact"。

这使我能够使用2013和MVC5的项目模板附带的标准ASP.NET身份工具。