自从更新NuGet包后,VS始终要求重新启动

3
我从模板创建了一个全新的C# Web应用程序,并立即更新了所有NuGet包。 在更新过程中,它需要重新启动,之后就一直显示这个消息: “一个或多个包无法完全卸载: Newtonsoft.Json.6.0.4。重新启动Visual Studio以完成卸载。” 但是,在重新启动Visual Studio后,相同的消息仍然存在。 packages.config文件包含以下行:<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" />

你的 packages.config 文件包含什么内容?它有哪个版本的 Json.NET? - Kiliman
1个回答

2

在尝试在包管理器控制台中手动更新软件包后,我收到一个错误提示,说存在的文件正在阻止安装。在从解决方案包中删除适当的文件夹后,错误消失了,我可以直接从包管理器UI更新软件包。

这是我的控制台输出:

PM> update-package -reinstall Newtonsoft.Json
Removing 'Newtonsoft.Json 6.0.4' from MyProject.
Successfully removed 'Newtonsoft.Json 6.0.4' from MyProject.
Uninstalling 'Newtonsoft.Json 6.0.4'.
update-package : TF400024: The change on D:\Users\Shimmy\Documents\Visual Studio 
2012\Projects\MyProject\MyProject\packages\Newtonsoft.Json.6.0.4\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll cannot be undone because a file already 
exists at D:\Users\Shimmy\Documents\Visual Studio 
2012\Projects\MyProject\MyProject\packages\Newtonsoft.Json.6.0.4\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll. The file must be deleted from disk for 
the undo to succeed.
At line:1 char:1
+ update-package -reinstall Newtonsoft.Json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Update-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand

'Newtonsoft.Json 6.0.4' already installed.
Adding 'Newtonsoft.Json 6.0.4' to MyProject.
Successfully added 'Newtonsoft.Json 6.0.4' to MyProject.
One or more packages could not be completely uninstalled: Newtonsoft.Json.6.0.4. Restart Visual Studio to finish uninstall.

1
对我来说,这是从4.5重新安装到6.0而没有失败 - 但它一直提示重新启动VS。我查看了packages文件夹,发现有一个带有空文件夹的Newtonsoft 4.5.1。我将其删除,在Packages的根目录中有一个名为newtonsoft.***.delete.me的文件 - 我将其删除。重新启动后一切都解决了。 - Piotr Kula
包文件夹在哪里? - gumuruh
这真是个及时雨。谢谢。我建议你在问题标题中加上Newtonsoft相关内容。我在过去的一年中遇到了这个问题两次,寻找解决方案并不容易。 - Jason P Sallinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接