一个或多个软件包无法完全卸载
我有一个ASP.NET MVC 4应用程序。 我使用NuGet来更新创build应用程序时安装的所有NuGet包。 其中一个包是Microsoft.Bcl.Build 。
更新这些之后,NuGet在窗口底部显示以下消息:
我已经重新启动了几次Visual Studio,但消息仍然存在。 当我检查已安装的软件包时,确实出现软件包的更新版本(1.0.8)。
我怎样才能解决这个问题?
看看~/packages
是否有*.deleteme
文件并删除它们,而不是删除~/packages
所有文件。 然后重新启动Visual Studio。
我相信这个问题是由文件系统级别的只读或不可访问引起的。
软件包在源代码pipe理下
临时解决方法(未经testing)
在告诉NuGet重新启动Visual Studio以删除软件包之前,检出整个软件包文件夹。
永久的变通
我发现这可以通过从源代码控制中删除软件包而使用NuGet软件包恢复来永久解决。
不受源代码pipe理的软件包
临时解决scheme
我通过从解决scheme的软件包文件夹中删除引用相关软件包的所有文件来解决此问题。 具体来说,这些是:
- 文件夹: Microsoft.Bcl.Build.1.0.7
- 文件: Microsoft.Bcl.Build.1.0.7.deleteme
在我的情况下,相关的包文件夹保留在~\packages
,尽pipe它们是空的。 我删除了文件夹并重新启动了Visual Studio,这个警告消失了。
1)删除整个~\packages
文件夹。
2)重新启动VS
3)去Manage NuGet Packages
和Restore
我刚刚删除了我的解决scheme文件夹中的Packages
文件夹中有错误的每个包的文件夹,也删除了.deleteme
文件,一切工作正常!
我会同意,当你的包文件夹在源代码pipe理下时,可能会发生这种情况。 如果你喜欢在那里,而不是删除绑定,你可以检查一切,用NuGet包pipe理器删除包,然后在病房后检查。
根据我的经验,我在这个主题上find了我的答案,但是结合了上面几个不同的答案,所以我想我会分享我发现的东西。
我与“Microsoft.Bcl.Build”的原始海报有完全相同的问题。 我一直在尝试更新使用NuGet的其他function的引用,并有一些更新(兼容性,然后回滚)的问题。 在这个NuGet失败后,我开始得到这个错误。
我最初使用选定的答案和Jedidja的答案,并能够得到这个工作,但它只是部分解决了我的问题。 它确实修复了VS重新启动错误,但它导致了TFS的下游问题,因为我不能再检查项目,因为它期望的是“* .deleteme”文件。 这让我思考,所以我做了一些testing。 当我从回收站中恢复文件时,我又开始重新启动错误。
在这里,我偏离了张贴的答案,并得到了我的问题的完整解决scheme的版本。
当我这次检查到TFS时,项目检查了所有内容(在删除了“* .deleteme”文件后,所有项目都使用NuGet更新)。 一旦它检查了一切,我注意到该文件仍然在登记,所以我再次检查解决scheme,TFS接受该文件,但它是作为删除….假设它在第一次检查,然后VS自动删除它需要第二次入住。 无论如何….在最后的待办事项变更登记后,文件已经消失,VS不再抱怨需要重新启动。 我不能肯定地说,因为问题已经消失了,但是如果在删除文件之前检查了代码,可能会解决问题而无需手动文件处理。
** 大家好。**
我这样解决这个问题。
-
如果你有源代码控制,以pipe理员身份运行vs(这很重要)
-
在解决scheme包 – >删除有关包的东西。 示例 – >我删除了所有的entity framework版本文件夹。
-
重新启动vs
- 打开解决scheme和解决scheme右键单击 – >pipe理该解决scheme的nuget包。 你会看到恢复button:)恢复
就这些。
如果您使用Entity Framework 6,则可以安装NuGet包“EntityFramework.SqlServerCompact”。
这使我能够使用2013和MVC5项目模板附带的标准ASP.NET身份工具。