nuget dll 被另一个进程使用

nuget dll is used by another process

我遇到了下面的错误,我完全不知道如何解决它。到目前为止尝试了以下方法:

  1. 清理bin/obj/packages/packages缓存
  2. 从 csproj 和 packages 文件中手动删除包并在之后添加它..仍然错误
  3. 更新 Visual Studio 2017
  4. 重新安装 Visual Studio 2017
  5. 跟踪哪些进程正在使用名称包含 Newtonsoft
  6. 的文件
  7. 从另一台构建工作正常的笔记本电脑复制解决方案

然而,毕竟从上面,我仍然得到:

Error       NuGet Package restore failed for project DriversApp.Android: Unable to find version '10.0.3' of package 'Newtonsoft.Json'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'Newtonsoft.Json.10.0.3' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  https://api.nuget.org/v3/index.json: Error downloading 'Newtonsoft.Json.10.0.3' from 'https://api.nuget.org/v3-flatcontainer/newtonsoft.json/10.0.3/newtonsoft.json.10.0.3.nupkg'.
  The process cannot access the file 'C:\Users\user\.nuget\packages\newtonsoft.json.0.3\lib\netstandard1.0\Newtonsoft.Json.dll' because it is being used by another process.
. Please see Error List window for detailed warnings and errors.                

如何解决这个问题?我真的被这个卡住了...

nuget dll is used by another process

您可以尝试使用以下故障排除来解决此问题。

  1. 在 Windows Explorer 中转到安装 NuGet 包的文件夹 C:\Users\user\.nuget\packages,删除 Newtonsoft.Json 文件夹。

  2. 可能与同一个解决方案中的多个项目引用同一个包有关,在 nuget restore 命令中添加“-DisableParallelProcessing”,最终命令看起来像:

    nuget restore "%WORKSPACE%\Solutions\App\App.sln" -DisableParallelProcessing

  3. 从 anti-malware 产品中排除 NuGet 包文件,或尝试禁用防病毒软件。 anti-malware/antivirus 产品在 NuGet 恢复操作期间短暂锁定这些文件。

  4. 在单击 "Clean Solution".

  5. 后,在解决方案资源管理器中右键单击解决方案,在构建项目之前清除所有引用的库

经过大量调查和思考,我通过卸载防病毒解决方案解决了这个问题,因为我在笔记本电脑中添加的规则已被公司服务器策略覆盖。

作为结论,首先检查您的防病毒解决方案,如果您处于受控环境中,请确保您的规则未被公司服务器策略覆盖。

谢谢@Leo Liu-MSFT 的帮助。

当项目中出现其他错误(即:项目引用错误等)时,我很可能会遇到这种情况

尝试 0:从所有项目中删除所有 bin 和 obj。

尝试 1:重启电脑

尝试 2:关闭与 & %temp% 全部删除

尝试 3:暂时禁用防病毒软件

尝试 4:将调试更改为发布并恢复原状

尝试 5:清除所有 nuget 缓存

如果以上都不起作用,请关闭您的电脑,坐下来休息片刻,放松一下,然后再回来查看。

运行 此命令具有管理员权限(net session /delete)。它对我有用。