
Estoy usando Visual Studio 2012 Professional actualizado a SP5 en Windows 7 SP1 con las últimas actualizaciones. Necesité Visual Studio 2015 durante algún tiempo, lo instalé y luego lo desinstalé con el desinstalador estándar.
Pero hoy necesitaba crear Webkit para Windows y su script de compilación se ejecutó.vswhere.exe
y detectó algunas partes de Visual Studio 2015 como instalación "funcional", por lo que necesitaba una desinstalación "completa" para VS2015, que encontré aquí:https://github.com/Microsoft/VisualStudioUninstaller. Lo ejecuté una vez y VS2015 desapareció de vswhere.exe
la salida.
Pero ahora tengo un problema: cada aplicación que intento compilar con VS2012 da "cl.exe terminado de forma anormal con el código -1073741701".
Lo intenté :
- Reinstalé VS2012 con o sin SP5 varias veces, incluida una reinstalación limpia (desinstalar principal, desinstalar dependencias, instalar nuevamente), sigue siendo el mismo error.
- Intenté reparar VS2012.
- Intenté ejecutarlo
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe
y dice "mspdb110.dll no encontrado". - Copié
Msobj110.dll
,Mspdb110.dll
y desdeMspdbcore.dll
y agregué a la RUTA . Sigue siendo el mismo error.Mspdbsrv.exe
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE
Si cambio la plataforma del proyecto a x64, se compila y se ejecuta sin problemas. Sólo el compilador x86 no se puede ejecutar y muestra el error anterior. A veces aparece una ventana emergente en VS2012 que dice "cl.exe no puede ejecutar el código 0xc000007b".
Si ejecuto
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat x86
, puedo ejecutar cl.exe
e incluso compilar aplicaciones de 32 bits que funcionen, pero dentro de Visual Studio 2012 IDE no se ejecuta cl.exe
siempre, sin importar lo que haga.
Por favor ayúdame a solucionarlo.
Creo que tal vez tenga algo que ver con .NET Framework (tengo instalado 4.5, 4.6 y 4.7) en la MSBuild
carpeta. ¿Quizás necesito reinstalar .NET Framework SDK de alguna manera? Si es posible, quiero evitar reinstalar el sistema operativo.
EDITAR: Comenzó una recompensa. Todavía tengo el mismo problema.
Intenté insertar ejecutar cl.exe
sin parámetros en el script "Ejecutar antes de compilar...", ¡y se ejecuta desde allí! Pero luego el IDE se ejecuta cl.exe
desde el entorno .NET y proporciona:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6006: código de error finalizado "CL.exe" -1073741701
Si selecciono la plataforma x64, cl.exe
funciona perfectamente en todas partes. Si ejecuto vcvarsall.bat x86
, puedo ejecutar cl.exe
y compilar.
Lo único que necesito arreglar es alguna ruta en el entorno que se usó para la compilación Win32 x86 desde Visual Studio 2012 IDE. Puedo reinstalar .NET Framework o Visual Studio (lo probé pero de todos modos) o editar algunas configuraciones de MSBuild. Por favor dígame dónde es posible solucionarlo. Lo único que no puedo hacer es reinstalar el sistema operativo, ya que tengo una gran cantidad de software y la reinstalación llevará MUCHO tiempo.
ACTUALIZACIÓN: Intenté desinstalar todo, incluidos .NET Framework 4.5, 4.6, 4.7 y Microsoft SQL Server 2008, 2012. Luego instalé Visual Studio 2012 Professional RTM. Después de la instalación en la primera ejecución, abrí la aplicación de prueba y obtuve el mismo error que el anterior... La versión x64 funciona. Lo mismo después de instalar SP5.
ACTUALIZACIÓN 2: Intenté recuperar archivos de Visual Studio 2012 y Windows SDK y msbuild desde la instalación de la máquina virtual Windows 7 SP1 en funcionamiento. No soluciona un error, el mismo problema. También intenté reemplazar cl.exe con una aplicación ficticia de 32 bits, todavía causa 0xc000007b cada vez que ejecuto la compilación desde IDE. Parece que cuando se ejecuta desde IDE Visual Studio usa cl.exe de 32 bits con algunas DLL de 64 bits. Pero no sé cómo encontrarlo ni cómo solucionarlo.
Respuesta1
El riesgo de desinstalar una versión de Visual Studio cuando hay varias instaladas es desinstalar demasiadas. Las versiones de Visual Studio se pueden instalar una al lado de la otra, pero pueden usar componentes comunes.
Parece que esto es lo que te pasó, y tus esfuerzos por solucionarlo copiando archivos DLL y modificando la RUTA solo han aumentado la confusión. Actualmente creo que su RUTA y otras variables de entorno provocan la confusión de archivos DLL de 32 y 64 bits, a menos que ejecute vcvarsall.bat
para restablecerlos.
No creo que deba ofrecer más ideas para mejorar aún más la situación, ya que esto sólo puede agravar el problema y dejar bombas de tiempo ocultas para el futuro.
Esta es la forma más cercana que se me ocurre de realizar una instalación limpia de Visual Studio y .Net:
- Desinstalación limpia de Visual Studio 2012 Professional usando Programa gratuito de desinstalación de Revo
- Desinstale todas las versiones de .Net que pueda desde Panel de control > Programas y características, así como desde Activar o desactivar la función de Windows
- Limpia todas las carpetas y el registro, manualmente o ejecutando un limpiador como Limpiador
- Vuelva a instalar las versiones .Net mientras intenta minimizar su número (normalmente sólo debería necesitar la última versión)
- Instale Visual Studio 2012 Professional y actualice a SP5.
No puedo garantizar el éxito, pero así es como intentaría conseguir una instalación realmente limpia y evitar reinstalar Windows.
Te sugiero llevar como copia de seguridad una imagen del disco del sistema, por si acaso, para poder volver a él. recomiendo Estándar de copia de seguridad de AOMEI.
Respuesta2
Tuve el mismo problema con VS2015. En mi caso, eliminar los siguientes archivos de la carpeta del proyecto solucionó el problema
\.vs\myProjectName\v14\.suo
\myProjectName.VC.db
\x64 (the whole x64 build output folder if there is one)