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

NuGet Package restore failed: Microsoft.Bcl.Build.Tasks.dll used by another process

NuGet Package restore failed for project MyProject.Application: The process cannot access the file 'C:\MySolution\packages\Microsoft.Bcl.Build.1.0.21\build/Microsoft.Bcl.Build.Tasks.dll' because it is being used by another process..

知道如何解决这个问题吗?谢谢

就我而言,这个问题是在我为 visual studio 组件安装更新后发生的。

作为一个选项,您可以尝试从 Visual Studio 中卸载 Nuget 插件,然后重新安装(在工具 -> 扩展和更新中)。

之后问题包成功恢复

在 Windows Explorer 中转到为我的解决方案安装 NuGet 包的文件夹

<VS Solution>\packages\

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

在进程资源管理器中找到 msbuild.exe 并终止它。

重新启动 Visual Studio 似乎有效 - 如果你在某个时候打开了多个 VS 副本,这似乎会发生 - 关闭所有副本,它似乎修复了它 - 对我来说它总是 Newtonsoft.json 11.0.2 由于某种原因导致问题。同时结束任何 MSBuild 进程的任务。

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

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

"This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}."

您可以安全地删除这些行并存储更改后的 .csproj 文件。然后你应该能够重建你的项目。这在某些情况下对我有用。

从提升的命令提示符尝试运行:

taskkill /im devenv.exe

我尝试在位于网络驱动器上的解决方案中恢复 nuget 包时遇到了很多这样的问题。只需将其移动到本地磁盘即可立即提供帮助

关闭 Visual Studio 并杀死所有 msbuild.exe 个实例,然后从 packages 文件夹中删除 Microsoft.Bcl* 文件夹。