
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.exe
e 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.exe
saí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.dll
eMspdbsrv.exe
fromC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
e adicionei ao PATHC:\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.exe
e até mesmo compilar aplicativos funcionais de 32 bits, mas dentro do IDE do Visual Studio 2012 ele falha ao executar cl.exe
todas 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 MSBuild
pasta. 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.exe
sem parâmetros no script "Run before build...", e ele roda a partir daí! Mas depois o IDE é executado cl.exe
no 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.exe
funciona perfeitamente em todos os lugares. Se eu executar vcvarsall.bat x86
, posso executar cl.exe
e 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.bat
para 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)