Я использую Visual Studio 2012 Professional, обновленный до SP5 под Windows 7 SP1 с последними обновлениями. Некоторое время я нуждался в Visual Studio 2015, установил, а затем удалил его стандартным деинсталлятором.
Но сегодня мне нужно было собрать Webkit для Windows, и его скрипт сборки запустил vswhere.exe
и определил некоторые части Visual Studio 2015 как "работающую" установку, поэтому мне потребовалась "полная" деинсталляция для VS2015, которую я нашел здесь: https://github.com/Microsoft/VisualStudioUninstaller. Я запустил его один раз, и VS2015 исчез из вывода vswhere.exe
.
Но теперь у меня есть проблема: каждое приложение, которое я пытаюсь скомпилировать с VS2012, выдает «cl.exe ненормально завершен с кодом -1073741701».
Я старался :
- Несколько раз переустанавливал VS2012 с или без SP5, включая чистую переустановку (удаление основной, удаление зависимостей, повторная установка), все та же ошибка.
- Пытался отремонтировать VS2012.
- Я попытался запустить
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe
, там написано "mspdb110.dll не найден". - Я скопировал
Msobj110.dll
,Mspdb110.dll
,Mspdbcore.dll
иMspdbsrv.exe
изC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
и добавил в ПУТЬC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
. Все та же ошибка.
Если я переключаю платформу проекта на x64, она компилируется и запускается без проблем. Только компилятор x86 не может работать и выдает ошибку выше. Иногда в VS2012 появляется всплывающее окно «cl.exe не может запустить код 0xc000007b».
Если я запускаю C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86
, я могу запустить cl.exe
и даже скомпилировать работающие 32-разрядные приложения, но в Visual Studio 2012 IDE не удается запустить cl.exe
каждый раз, что бы я ни делал.
Пожалуйста, помогите мне исправить это.
Я думаю, может быть, это как-то связано с .NET Framework (у меня установлены 4.5, 4.6 и 4.7) в папке MSBuild
. Может мне нужно как-то переустановить .NET Framework SDK? Если возможно, я хочу избежать переустановки ОС.
РЕДАКТИРОВАТЬ: началось вознаграждение. Все еще есть та же проблема.
Я попытался вставить run cl.exe
без параметров в сценарий «Выполнить перед сборкой ...», и он запускается оттуда! Но после этого IDE запускает cl.exe
из среды .NET и выдает:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets (347,5): ошибка MSB6006: код ошибки «CL.exe» прерван -1073741701
Если я выберу платформу x64, cl.exe
везде отлично работает.
Если я запускаю vcvarsall.bat x86
, я могу запустить cl.exe
и скомпилировать.
Единственное, что мне нужно исправить - это какой-то путь в среде, который использовался для сборки Win32 x86 из Visual Studio 2012 IDE. Я могу переустановить .NET Framework или Visual Studio (пробовал, но в любом случае) или редактировать некоторые конфигурации MSBuild. Подскажите пожалуйста где можно починить. Единственное, что я не могу сделать, это переустановить ОС, так как у меня много программного обеспечения, и переустановка займет много времени.
ОБНОВЛЕНИЕ: пытался удалить все, включая .NET Framework 4.5, 4.6, 4.7 и Microsoft SQL Server 2008, 2012. Затем установил Visual Studio 2012 Professional RTM. После установки при первом запуске я открыл тестовое приложение и получил ту же ошибку, что и выше ... x64 версия работает. То же самое после установки SP5.
ОБНОВЛЕНИЕ 2: Попытка принести файлы Visual Studio 2012 и Windows SDK и msbuild из установленной виртуальной машины Windows 7 SP1. Это не исправляет ошибку, та же проблема. Также пытался заменить cl.exe на фиктивное 32-разрядное приложение, которое по-прежнему вызывает 0xc000007b каждый раз, когда я запускаю сборку из IDE. Похоже, при запуске из IDE Visual Studio использует 32-битный cl.exe с некоторыми 64-битными DLL. Но я не знаю, как его найти и как исправить.