首页 > 解决方案 > 并行工作者中的 vcvars 文件访问被拒绝

问题描述

我有时会在 gitlab ci-cd worker 日志中遇到这种错误。

如何修复它并为 MSVC 项目设置并行构建?

**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.8.4
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
The process cannot access the file because it is being used by another process.

标签: visual-studiomsbuildgitlab-ci-runnerparallel-builds

解决方案


我很好奇你是怎么调用msbuild.exe的,可能你调用了多个mbsuild.exe进程来对应一对一的构建项目。

如果您只是收到干扰 msbuild.exe 的外部程序,在遇到此问题之前,您应该打开任务管理器以关闭任何使用 uses 的进程msbuild.exe

如果你只是在 gitlab ci-cd 下启动多个 msbuild.exe 进程然后遇到问题(你已经在任务管理器下检查了没有其他程序使用 msbuild.exe),你已经更改为使用另一个功能:

创建一个名为test.projfile 的文件,然后使用我的方法将要并行构建的任何项目文件(csproj文件)或解决方案文件(文件)添加到文件中。这样您只需在 ci-cd 中输入一个文件。slntest.projproj

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe xxx\test.proj -t:ParelBuild在 gitlab ci-cd 下使用。


推荐阅读