【问题标题】:One or more packages could not be completely uninstalled无法完全卸载一个或多个软件包
【发布时间】:2013-08-20 17:22:12
【问题描述】:

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

更新这些后,NuGet 在其窗口底部显示以下消息:

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

我该如何解决这个问题?

【问题讨论】:

  • 啊,BCL。是的,MS 更新了一个库,该库创建了对该包的依赖项,大多数源控件由于排除路径而阻塞。

标签: nuget


【解决方案1】:

不要删除所有~/packages,而是查看~/packages中是否有任何*.deleteme文件并删除它们。然后重启 Visual Studio。

【讨论】:

  • 我必须先停止 Visual Studio,然后才能删除该文件夹,因为它“正在使用”。
  • 如果您在同一个项目中有多个解决方案,那么您需要从每个解决方案中删除~/packages 中的*.deleteme 文件。
  • 是的!删除 SimpleImpersonation.2.0.1.deleteme 文件对我有用。只有一个这样的文件具有deleteme 扩展名。我必须退出 Visual Studio 才能删除文件。
  • 为我做到了。
【解决方案2】:

我相信这个问题是由于包是只读的或在文件系统级别无法访问。

源代码管理下的包

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

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

永久解决方法

我发现可以通过从源代码管理中删除包并改用 NuGet 包还原来永久解决此问题。

不受源代码控制的软件包

临时解决办法

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

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

【讨论】:

  • 在我的情况下,一个完全不同的进程锁定了 nuget 包中的一个文件夹。一旦我使用其中一种工具查看哪个进程锁定了哪个文件/文件夹并解锁它,问题就解决了。
  • 最重要的临时解决方法也适用于 Visual Studio 2015
【解决方案3】:

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

【讨论】:

  • 这对我也有用,重新启动 Visual Studio 很重要。
【解决方案4】:

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

【讨论】:

  • 我不得不使用 TaskManager 来关闭 devenv 进程。
【解决方案5】:

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

2) 重启VS

3) 转到Manage NuGet PackagesRestore

【讨论】:

  • 删除“Deleteme”文件后,我必须进行恢复以使一切正常。
【解决方案6】:

我同意当您的包文件夹受源代码控制时会发生这种情况。如果你想把它放在那里,你可以把它全部检查出来,而不是删除绑定,用 NuGet 包管理器删除包,然后再签入。

【讨论】:

    【解决方案7】:

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

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

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

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

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

    【讨论】:

      【解决方案8】:

      ** 大家好。**

      我通过这种方式解决了这个问题。

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

      2. 在解决方案包中 -> 删除有关包的内容。 示例 -> 我删除了所有实体框架版本文件夹。

      3. 重启vs

      4. 打开解决方案并右键单击解决方案 -> 管理此解决方案的 nuget 包。 你会看到恢复按钮 :) 恢复

      仅此而已。

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

          猜你喜欢
          • 2020-11-08
          • 1970-01-01
          • 2016-04-02
          • 2018-03-30
          • 1970-01-01
          • 2020-01-12
          • 2021-05-27
          • 2016-11-22
          • 2019-07-14
          相关资源
          最近更新 更多