NuGet包还原失败:Microsoft.Bcl.Build.Tasks.dll被另一个进程使用。

38

项目 MyProject.Application 的 NuGet 包还原失败:由于其正在被另一进程使用,因此无法访问文件 'C:\MySolution\packages\Microsoft.Bcl.Build.1.0.21\build/Microsoft.Bcl.Build.Tasks.dll'。

请问如何解决此问题?谢谢。

8个回答

55

在 Windows Explorer 中,前往安装了我的解决方案的 NuGet 包的文件夹

<VS Solution>\packages\

并删除了所有 Microsoft.Bcl.* 文件夹,然后可以无问题地重新构建解决方案。


1
通常删除出现错误的软件包会有所帮助。我遇到了Microsoft.Net.Compilers的问题。 - cah1r
在需要下载大量NuGet包的情况下,终止msbuild.exe进程比删除所有NuGet包要容易。 - Aamol

14

在进程管理器中找到msbuild.exe并结束它。


1
并杀死 devenv.exe - Scott Anderson

1

请尝试在管理员权限下的命令提示符中运行以下命令:

taskkill /im devenv.exe


0

请查看您的.csproj文件。如果您发现标签“PropertyGroup”和“ErrorText”的内容如下:

“此项目引用了在此计算机上缺失的NuGet包。使用NuGet Package Restore来下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺失的文件是{0}。”

您可以安全地删除这些行并存储修改后的.csproj文件。然后,您应该能够重新构建您的项目。在我的几个案例中,这种方法都有效。


0

我在尝试从网络驱动器上恢复NuGet包时遇到了很多这样的问题。将其移动到本地磁盘上立即解决了问题。


0

关闭Visual Studio并结束所有msbuild.exe进程,然后从packages文件夹中删除Microsoft.Bcl*文件夹。


0
在我的情况下,这个问题是在我安装 Visual Studio 组件的更新后出现的。
作为一个解决方案,您可以尝试从 Visual Studio 卸载 Nuget 插件,然后再次安装(在“工具”->“扩展和更新”中)。
之后,有问题的包就会成功恢复。

0

重新启动Visual Studio似乎有效 - 如果您在某个时候打开了多个VS副本,则会发生这种情况 - 关闭所有副本,它似乎可以解决问题 - 对于我来说,总是Newtonsoft.json 11.0.2引起了某些原因的问题。还要结束任何MSBuild进程的任务。

如果清除NuGet缓存(或删除.nuget\packages文件夹),问题不会消失,这表明锁定发生在还原过程中。


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