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

0

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

Mas hoje eu precisei criar o Webkit para Windows, e seu script de compilação executou vswhere.exe e detectou algumas partes do Visual Studio 2015 como instalação "em funcionamento", então eu precisava da desinstalação "completa" do VS2015, que encontrei aqui: link . Eu corri uma vez, e o VS2015 desapareceu de vswhere.exe output.

Mas agora tenho um problema: Cada aplicativo que eu estou tentando compilar com o VS2012 dá "cl.exe terminado anormalmente com o código -1073741701".

Eu tentei:

  • Reinstalado VS2012 com ou sem SP5 várias vezes, incluindo a reinstalação limpa (desinstalar principal, desinstalar dependências, instalar novamente), ainda o mesmo erro.
  • Tentou reparar o VS2012.
  • Tentei executar C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe , ele diz "mspdb110.dll não encontrado".
  • copiei %código%, %código%, Msobj110.dll e %código% de %código% e adicionado ao PATH %código%. Ainda o mesmo erro.

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

Se eu correr %código%, Eu posso executar Mspdb110.dll e até mesmo compilar aplicativos de 32 bits de trabalho, mas dentro do Visual Studio 2012 IDE ele não consegue executar Mspdbcore.dll todas as vezes, não importa o que eu faça.

Por favor, ajude-me a corrigi-lo.

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

EDITAR: Começou uma recompensa. Ainda tem o mesmo problema.

Eu tentei inserir o run C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE sem parâmetros no script "Run before build ...", e ele roda a partir daí! Mas depois o IDE executa C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE do ambiente .NET e fornece:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6006: "CL.exe" terminated error code -1073741701

Se eu selecionar a plataforma x64, C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86 será executado perfeitamente em qualquer lugar. Se eu executar cl.exe , posso executar cl.exe e compilar.

A única coisa que preciso corrigir é algum caminho no ambiente que é usado para o Win32 x86 build do Visual Studio 2012 IDE. Eu posso reinstalar o .NET Framework ou Visual Studio (tentei mas de qualquer maneira) ou editar algumas configurações do MSBuild. Por favor, diga-me onde for possível corrigir. A única coisa que eu não posso fazer é reinstalar o sistema operacional, como eu tenho um monte de software e reinstalação vai demorar muito tempo.

ATUALIZAÇÃO: Tentei desinstalar tudo, incluindo o .NET Framework 4.5, 4.6, 4.7 e Microsoft SQL Server 2008, 2012. Em seguida, instalei o Visual Studio 2012 Professional RTM. Depois de instalar na primeira execução eu abri app de teste e tenho o mesmo erro como 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 de trabalhar a instalação da máquina virtual do Windows 7 SP1. Não corrige um erro, mesmo problema. Também tentei substituir o cl.exe com o aplicativo fictício de 32 bits, ainda causa 0xc000007b toda vez que eu executo o build do IDE. Parece que quando executado a partir do IDE Visual Studio usa cl.exe de 32 bits com alguma DLL de 64 bits. Mas eu não sei como encontrar e como consertar.

    
por NoAngel 22.08.2018 / 07:57

2 respostas

0

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

Parece que foi isso que aconteceu com você e seus esforços para corrigi-lo copiando DLLs e modificar o PATH só aumentaram a confusão. Atualmente eu acredito que o seu PATH e outras variáveis de ambiente causam mix-up de DLLs de 32 bits e 64 bits, a menos que você execute vcvarsall.bat para redefini-las.

Eu não acho que eu deva oferecer mais idéias para mais remendos da situação, como isso só pode 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 do .Net que eu posso pensar:

  • Limpar-desinstalar o Visual Studio 2012 Professional usando freeware Revo Uninstaller
  • Desinstale todas as versões do .net das quais você pode Painel de controle > Programas e Recursos, bem como de Ativar ou desativar o recurso do Windows
  • Esfregue todas as pastas e o registro, manualmente ou executando um limpador como CCleaner
  • Reinstale a (s) versão (ões) do .Net ao tentar minimizar seu número (normalmente você só precisa da versão mais recente)
  • Instale o Visual Studio 2012 Professional e atualize para o SP5.

Eu não posso garantir o sucesso, mas é assim que eu tentaria realmente limpe a instalação e evite reinstalar o Windows.

Eu sugiro tomar como backup uma imagem do disco do sistema, apenas no caso de então você pode voltar para isso. Eu recomendo Padrão AOMEI Backupper .

    
por 24.08.2018 / 11:54
0

Tive o mesmo problema com o VS2015. No meu caso, a exclusão dos seguintes arquivos da pasta do projeto corrigiu o problema

\.vs\myProjectName\v14\.suo
\myProjectName.VC.db
\x64 (the whole x64 build output folder if there is one)
    
por 05.09.2018 / 15:57