Я использую 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. Но я не знаю, как его найти и как исправить.

2 ответа2

0

Риск удаления одной версии Visual Studio, когда установлено несколько, состоит в том, чтобы удалить слишком много. Версии Visual Studio могут быть установлены параллельно, но они могут использовать общие компоненты.

Похоже, именно это и произошло с вами, и ваши попытки исправить это путем копирования библиотек DLL и изменения PATH только добавили путаницы. В настоящее время я считаю, что ваш PATH и другие переменные среды вызывают смешивание 32-битных и 64-битных DLL, если вы не запускаете vcvarsall.bat для их сброса.

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

Это самый близкий способ сделать чистую установку Visual Studio и .Net, о котором я могу думать:

  • Чистая-деинсталляция Visual Studio 2012 Professional с использованием бесплатного Revo Uninstaller
  • Удалите все версии .Net, которые вы можете, из Панели управления> Программы и компоненты, а также из Включения или выключения функции Windows.
  • Очистите все папки и реестр вручную или запустив очиститель, такой как CCleaner.
  • Переустановите .Net версии (версии), пытаясь свести к минимуму их количество (обычно вам нужна только последняя версия)
  • Установите Visual Studio 2012 Professional и обновите до SP5.

Я не могу гарантировать успех, но так я бы попытался получить действительно чистую установку и избежать переустановки Windows.

Я предлагаю на всякий случай взять резервную копию образа системного диска, чтобы вы могли вернуться к нему. Я рекомендую AOMEI Backupper Standard.

0

Была такая же проблема с VS2015. В моем случае удаление следующих файлов из папки проекта решило проблему

\.vs\myProjectName\v14\.suo
\myProjectName.VC.db
\x64 (the whole x64 build output folder if there is one)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .