Visual Studio 2012: cl.exe -1073741701 somente em x86

Visual Studio 2012: cl.exe -1073741701 somente em x86

Estou usando o Visual Studio 2012 Professional atualizado para SP5 no Windows 7 SP1 com as atualizações mais recentes. Eu precisava do Visual Studio 2015 há algum tempo, instalei e desinstalei com o desinstalador padrão.

Mas hoje eu precisava construir o Webkit para Windows, e seu script de construção foi executado vswhere.exee detectou algumas partes do Visual Studio 2015 como instalação "funcional", então precisei da desinstalação "completa" do VS2015, que encontrei aqui:https://github.com/Microsoft/VisualStudioUninstaller. Executei uma vez e o VS2015 desapareceu da vswhere.exesaída.

Mas agora tenho um problema: todos os aplicativos que tento compilar com o VS2012 fornecem "cl.exe finalizado de forma anormal com o código -1073741701".

Tentei :

  • Reinstalei o VS2012 com ou sem SP5 várias vezes, incluindo reinstalação limpa (desinstalar principal, desinstalar dependências, instalar novamente), ainda o mesmo erro.
  • Tentei reparar o VS2012.
  • Tentei executar C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe, diz "mspdb110.dll não encontrado".
  • Copiei Msobj110.dll, Mspdb110.dll, Mspdbcore.dlle Mspdbsrv.exe from C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE e adicionei ao PATH C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE. Ainda o mesmo erro.

Se eu mudar a plataforma do projeto para x64, ele será compilado e executado sem problemas. Somente o compilador x86 não pode ser executado e apresenta o erro acima. Às vezes, há um pop-up no VS2012 informando que "cl.exe não pode executar o código 0xc000007b".

Se eu executar C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86, posso executar cl.exee até mesmo compilar aplicativos funcionais de 32 bits, mas dentro do IDE do Visual Studio 2012 ele falha ao executar cl.exetodas as vezes, não importa o que eu faça.

Por favor me ajude a consertar isso.

Acho que talvez tenha algo a ver com o .NET Framework (tenho 4.5, 4.6 e 4.7 instalados) na MSBuildpasta. Talvez eu precise reinstalar o .NET Framework SDK de alguma forma? Se possível, quero evitar a reinstalação do sistema operacional.

EDIT: Começou uma recompensa. Ainda tenho o mesmo problema.

Tentei inserir run cl.exesem parâmetros no script "Run before build...", e ele roda a partir daí! Mas depois o IDE é executado cl.exeno ambiente .NET e fornece:

C:\Arquivos de Programas (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): erro MSB6006: "CL.exe" terminou o código de erro -1073741701

Se eu selecionar a plataforma x64, cl.exefunciona perfeitamente em todos os lugares. Se eu executar vcvarsall.bat x86, posso executar cl.exee compilar.

A única coisa que preciso corrigir é algum caminho no ambiente usado para compilação Win32 x86 do Visual Studio 2012 IDE. Posso reinstalar o .NET Framework ou o Visual Studio (tentei, mas mesmo assim) ou editar algumas configurações do MSBuild. Por favor, diga-me onde é possível consertar. A única coisa que não posso fazer é reinstalar o sistema operacional, pois tenho muitos softwares e a reinstalação levará muito tempo.

ATUALIZAÇÃO: Tentei desinstalar tudo, incluindo .NET Framework 4.5, 4.6, 4.7 e Microsoft SQL Server 2008, 2012. Em seguida, instalei o Visual Studio 2012 Professional RTM. Após a instalação na primeira execução, abri o aplicativo de teste e recebi o mesmo erro acima... a versão x64 funciona. O mesmo depois de instalar o SP5.

UPDATE2: Tentei trazer arquivos do Visual Studio 2012 e Windows SDK e msbuild da instalação funcional da máquina virtual do Windows 7 SP1. Não corrige um erro, mesmo problema. Também tentei substituir cl.exe por um aplicativo fictício de 32 bits, mas ainda causa 0xc000007b toda vez que executo a compilação do IDE. Parece que quando executado a partir do IDE, o Visual Studio usa cl.exe de 32 bits com algumas DLL de 64 bits. Mas não sei como encontrá-lo e como consertar.

Responder1

O risco de desinstalar uma versão do Visual Studio quando várias estão instaladas é desinstalar demais. As versões do Visual Studio podem ser instaladas lado a lado, mas podem usar componentes comuns.

Parece que foi isso que aconteceu com você, e seus esforços para consertar copiando DLLs e modificando o PATH apenas aumentaram a confusão. Atualmente acredito que seu PATH e outras variáveis ​​de ambiente causam a confusão de DLLs de 32 e 64 bits, a menos que você execute vcvarsall.batpara redefini-las.

Não creio que deva oferecer mais ideias para melhorar ainda mais a situação, pois isso só poderá agravar o problema e deixar bombas-relógio escondidas para o futuro.

Esta é a maneira mais próxima de fazer uma instalação limpa do Visual Studio e .Net que consigo imaginar:

  • Desinstale o Visual Studio 2012 Professional usando Revo Desinstalador gratuito
  • Desinstale todas as versões .Net que puder em Painel de controle> Programas e recursos, bem como em Ativar ou desativar recurso do Windows
  • Limpe todas as pastas e o registro manualmente ou executando um limpador como CCleaner
  • Reinstale a(s) versão(s) .Net enquanto tenta minimizar seu número (normalmente você só precisa da versão mais recente)
  • Instale o Visual Studio 2012 Professional e atualize para o SP5.

Não posso garantir o sucesso, mas é assim que tentaria obter uma instalação realmente limpa e evitar reinstalar o Windows.

Sugiro fazer como backup uma imagem do disco do sistema, por precaução, para que você possa voltar a ele. Eu recomendo Padrão de backup AOMEI.

Responder2

Tive o mesmo problema com o VS2015. No meu caso, excluir os seguintes arquivos da pasta do projeto resolveu o problema

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

informação relacionada