53

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

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

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

我怎样才能解决这个问题?

4

9 回答 9

86

与其全部删除,不如~/packages看看里面有没有*.deleteme文件,~/packages然后删除。然后重新启动 Visual Studio。

于 2014-08-29T14:34:18.067 回答
47

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

源代码控制下的包

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

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

永久解决方法

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

不受源代码控制的软件包

临时解决办法

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

  1. 文件夹:Microsoft.Bcl.Build.1.0.7
  2. 文件:Microsoft.Bcl.Build.1.0.7.deleteme
于 2013-08-19T02:17:45.597 回答
8

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

于 2013-11-08T18:44:17.037 回答
3

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

于 2016-02-24T21:30:54.373 回答
2

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

2)重新启动VS

3)转到Manage NuGet PackagesRestore

于 2014-04-21T05:39:23.433 回答
1

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

于 2013-11-08T22:50:23.760 回答
1

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

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

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

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

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

于 2014-12-28T19:10:52.067 回答
0

** 大家好你们好。**

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

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

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

  3. 重启vs

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

就这些。

于 2014-05-15T14:01:29.133 回答
0

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

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

于 2014-06-23T00:53:34.457 回答