Почему msbuild и link.exe «зависают» во время сборки?
У нас есть несколько решений на C ++, и мы запускаем некоторые сценарии сборки, используя пакетные файлы, которые вызывают msbuild.exe для каждой конфигурации в решениях.
Это работало нормально на 3 машинах разработчика и одной машине сборки, но затем один из проектов начал зависать при компоновке. Это происходит только на самой новой машине с четырехъядерным процессором, 2,8 ГГц, я думаю. Он работает на Windows Server 2003, а остальные на XP или Vista.
Это происходит последовательно, даже если я изменяю порядок сборок в файле bat.
Если я запускаю сборку из IDE на этой машине, она не зависает.
Есть идеи о том, что может быть причиной этого?
Я использую Visual Studio 2008.
Edit:Теперь я вижу, что когда он завис, запускаются следующие:
link.exe (2 instances) One with large memory usage and one with a small amount of memory usage. vcbuild.exe msbuild.exe vcbuildhelper.exe mspdbsrv.exe Edit:Exe-файл существует, также как и файл pdb.
EXE-файл заблокирован каким-либо процессом, и я не могу удалить его или переместить. Я могу удалить файл pdb, хотя.
У меня также есть проблема, если я просто использую VCBuild.exe.
Я решил попробовать отладить 2 процесса link.exe и mspdbsrv.exe.
Когда я подключил к ним IDE отладчика / MSdev, я получил сообщение о том, что приложение заблокировано и / или что все потоки закрылись.
Я думаю, мне придется проверить пакет обновления для этой установки msdev на этой машине.
Edit:В выходном файле debug.htm я получаю всевозможные выходные данные после генерации команды link.exe.
Однако для выпуска buildlog.htm строка linke.exe является последней строкой.
Это явно зависание в компоновщике. Определенно ошибка Microsoft.
Я сейчас пытаюсь выяснить, что такое файл .rsp (ответ компоновщика).
Когда я выпускаю:
link.exe @c:\\Release\RSP00000535202392.rsp /NOLOGO /ERRORREPORT:QUEUE
Это последняя строка в журнале сборки релиза. После этого у отладочной информации будет намного больше информации.
Переустановка другой версии Visual Studio не решила проблему.
Я открою вопрос / билет с Microsoft. Я отправлю ответ, если смогу.