Доступ к файлу vcvars запрещен в параллельных рабочих процессах

Иногда я получаю такую ​​​​ошибку в рабочем журнале gitlab ci-cd.

Как это исправить и настроить параллельные сборки для проектов 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.

person buridan    schedule 06.04.2021    source источник


Ответы (1)


Мне любопытно, как вы вызываете msbuild.exe, и, возможно, вы вызываете несколько процессов mbsuild.exe, чтобы они соответствовали строительным проектам один к одному.

Если вы просто получаете сторонние программы, которые мешают работе msbuild.exe, прежде чем столкнуться с этим, вам следует открыть Диспетчер задач, чтобы закрыть любой процесс, использующий msbuild.exe.

Если вы просто запускаете несколько процессов msbuild.exe в gitlab ci-cd, а затем сталкиваетесь с проблемой (вы уже проверили, что нет других программ, использующих msbuild.exe в диспетчере задач), вы изменили использование другой функции:

Создайте файл с именем test.proj file, а затем используйте мой метод для добавления любых файлов проекта (csproj файл) или файлов решения (sln файл), которые вы хотите параллельно встроить в test.proj файл. Так что вам нужно ввести только один файл proj в ci-cd.

Используйте C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe xxx\test.proj -t:ParelBuild под gitlab ci-cd.

person Sara Liu - MSFT    schedule 07.04.2021
comment
Это происходит до запуска msbuild, я не могу запустить vcvarsall.bat - person buridan; 07.04.2021
comment
Вы проверили диспетчер задач, чтобы убедиться, что вы закрыли все процессы, которые использовали msbuild.exe до этого? - person Sara Liu - MSFT; 08.04.2021
comment
Руками проверить не могу, так как запускается раннером, и нужно пояснить, что можно сделать, чтобы vcvars.bat и msbuild запускались параллельно на разных проектах, одновременно, без конфликтов. - person buridan; 08.04.2021
comment
Это связано с вашим файлом bat и вашей командой ci-cd. Попробуйте перезапустить агент. - person Sara Liu - MSFT; 12.04.2021
comment
Пробую уже, не помогает. И эта ошибка появляется редко, так что похоже, этот bat(vcvarsall) можно запускать только один параллельно... - person buridan; 12.04.2021
comment
Вы должны запустить их один за другим. - person Sara Liu - MSFT; 14.04.2021
comment
Мне нужна параллельная сборка, а не последовательная, для разных проектных решений, а не для одного. - person buridan; 14.04.2021