MSbuild error: The specified task executable cmd.exe could not be run. The process cannot access the file, because it is being used by another process

MSbuild error: The specified task executable cmd.exe could not be run. The process cannot access the file, because it is being used by another process

在特定的 windows 更新之后,MSBUild 一直在抛出这个:

The specified task executable cmd.exe could not be run. The process cannot access the file, because it is being used by another process

这个问题很顽固。我尝试增加 "maximum number of parallel project builds" 但无济于事。我没有找到任何其他限制非管理员访问 MSBuild 提到的位置的软件。

还有其他人有类似情况吗?

一旦我打开 MSBUILD 的诊断日志记录(工具 -> 选项 -> 项目和解决方案 -> 构建和 运行),我注意到我的问题是 NuGet 恢复:

2>C:\Code\EEE\Dev\Current\Source\.nuget\NuGet.targets(92,9): error
  MSB6003: The specified task executable "cmd.exe" could not be run. The
  process cannot access the file 'C:\Users\myUserName\AppData\Local\Temp\
  tmp271c9a670c43427c9ba44267a4152430.exec.cmd' because it is being used by 
  another process.
2>Done executing task "Exec" -- FAILED. (TaskId:13)
2>Done building target "RestorePackages" in project
 "TTT.EEE.Tests.Unit.csproj" -- FAILED.: (TargetId:11)

此问题在另一个 Windows 更新后立即得到解决。

我们从最近更新的 Visual Studio 2017 年 Windows 10 日构建我们的 C# 解决方案时遇到了同样的问题,McAfee 病毒扫描处于活动状态(并被我们的 IT 人员锁定)。

在我们的例子中,将 TEMP 和(特别是)TMP 环境变量更改为 c:\temp 而不是 c:\users{username}\AppData\Local\Temp 然后重新启动 Visual Studio 得到我们过去了这个非常令人沮丧的问题。

(我们的第一次修复尝试将 TMP 设置为 c:\windows\temp 但这并没有解决问题)。