我们正在 Amazon 服务器 (Windows Server 2012 R2) 上为一些 Visual Studio 解决方案运行自动化 Jenkins 构建。其中较大的项目配置了/MP
,使用多处理器编译,试图最小化构建时间。
我们也使用它的 /m
标志运行 msbuild
。
问题是几分钟后我们得到:
TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe" @C:\Users\Administrator\AppData\Local\Temp\tmpd19a7e5e426f4ec7baa597ed75516fd4.rsp". Not enough quota is available to process this command.
此问题仅在运行 Jenkins 代理时出现。使用 Visual Studio IDE 一切都很好。从命令提示符运行 MSBuild 时,一切都很好。
知道为什么会发生这种情况,我们可以解决它吗?
运行
WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors
got
DeviceID NumberOfCores NumberOfLogicalProcessors
CPU0 2 4
也许 VS2015 没有正确检测有效处理器的数量,并跨越了同时产生太多进程的某些进程边界?
如有任何帮助,我们将不胜感激。
最佳答案
问题是在 WinRM 中定义了配额,如下所示:https://msdn.microsoft.com/en-us/library/ee309367(v=vs.85).aspx 我们将 MaxProcessesPerShell 的值更改为高于默认值 25 瞧。
关于c++ - VS2015 的多处理器编译在运行 cl.exe 时产生 "not enough quota is available to process this command",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38118041/