visual-studio-2010 - professional - visual studio 2015 español
¿Por qué recibo un error para "__CrtGetFileInformationByHandleEx" cuando intento compilar (5)
Acabo de instalar Visual Studio 2015 Community en mi computadora. Hasta ahora he estado usando Visual Studio 2010 Professional. Ahora, cuando intento ejecutar mis aplicaciones MVC en el servidor web incorporado, aparece el siguiente mensaje de error.
El punto de entrada del procedimiento __CrtGetFileInformationByHandleEx no se pudo ubicar en / WINDOWS / SYSTEM32 / msvcp120_clr0400.dll
Recibo el mismo mensaje de error si intento ejecutar vbc.exe
(el compilador de Visual Basic) directamente en el símbolo del sistema. Mi aplicación MVC también muestra un YSOD con
Error de compilación - Mensaje de error del compilador: el compilador falló con el código de error -1073741511.
¿Cómo puedo arreglar mi VS para que pueda ejecutar mis programas de nuevo?
Pasos que he intentado
- Desinstalar la comunidad VS 2015
- Desinstalar y reinstalar .NET 4.6 y .NET 4.5.2
- DISM / Online / Cleanup-Image / RestoreHealth
- La herramienta de reparación .NET
- Ejecutar sfc / scannow
- Cambie manualmente el nombre del archivo msvcr120_clr0400.dll a msvcr120_clr0400.dll.corrupt y haga 1-5
- Desinstalar y reinstalar VS 2010 con SP1
sfc /scannow
reemplazó con éxito el archivo msvcr120_clr0400.dll, ¡pero lo reemplazó con el mismo archivo CTP que antes!
EDITAR :
El problema dll de mi sistema está disponible para descargar aquí:
De acuerdo, lo veo en los archivos que subiste al servicio para compartir, tu instalación de .NET está dañada. Un problema estándar de Hell, su archivo c: / windows / syswow64 / msvcr120_clr400.dll es la versión incorrecta. Algo que puedes ver cuando usas Explorer y navegas hasta el archivo. Haga clic derecho y seleccione Propiedades, mire la pestaña Detalles.
Anote la palabra "CTP" en el nombre del producto, que significa "Vista previa de la tecnología comunitaria". Un término de Microsoft que significa "versión beta". Claramente, no debería tener la versión beta de VS2013 en su máquina. Su msvcp120_clr0400.dll es correcto, es la versión del archivo 12.0.52512.0. Depende de una función exportada en la DLL msvcr que la versión CTP aún no tenía.
Exactamente cómo sucedió esto es siempre difícil de hacer ingeniería inversa. Usted es el tercer usuario SO que conozco que tuvo este problema esta semana, una coincidencia demasiado grande. Dos escenarios básicos, si alguna vez tuvo instalada la edición CTP VS2013 en la máquina, el problema es que no se actualizó como debería. De lo contrario, un problema muy típico con las ediciones CTP, son bastante peligrosas porque el desinstalador siempre es lo último que Microsoft hace bien. Y el problema nunca se detectó hasta que comenzó a usar un programa que requería esta exportación.
O fue causado por un instalador no autorizado, copiando la versión antigua en su máquina sin verificar el número de versión. Es mucho menos probable que los instaladores nunca tengan una buena razón para instalar este archivo en particular, ya que solo lo usa .NET Framework. Por lo tanto, mi dinero está en su máquina corrompiéndose por el CTP.
Necesitas resolver esto arreglando tu máquina. No es tan fácil, nunca puede estar seguro de cuántas otras DLL defectuosas se encuentran alrededor de una desinstalación de CTP tan mala. Un atajo es copiar esta DLL en particular desde una buena máquina. Pero lo mejor es volver a instalar .NET 4.6.
EDITAR desde OP:
Esta respuesta identificó correctamente los archivos de problemas, pero la reinstalación (o cualquier otro paso común) no lo resolvió. Al final, copié "buenos" archivos de otra computadora con el número de versión 12.0.20806.33440.
KB3098779 parece ser el culpable de nuestro servidor. Ese es el parche que instaló el CTP malicioso msvcr120_clr0400.dll mencionado en la respuesta anterior. Solución : invertimos el conjunto de parches que se aplicó a KB3098779 y todo está funcionando nuevamente. FYI: este es un problema de .NET framework 4+, no de Visual Studio. Nuestro servidor es un servidor IIS estándar de 2012: Visual Studio no está instalado.
Microsoft es consciente de este problema con KB3098779 y 3097997:
https://support.microsoft.com/en-us/kb/3118750
La recomendación es desinstalar estos parches y luego volver a buscar actualizaciones. Las versiones más recientes de estos parches de seguridad (que no rompen el compilador de VB) ahora están disponibles.
Microsoft ha emitido un aviso sobre esto. https://support.microsoft.com/en-us/kb/3118750
Como otros han señalado demasiadas personas en un tiempo demasiado corto para ser una coincidencia. No es un problema de VS, esto tiene que ver con una mala actualización de Microsoft.
La información de MS menciona dos parches de seguridad (KB3098779 y KB3097997).
He desinstalado solo KB3098779 y mi sitio está en funcionamiento. Se requiere un reinicio de la máquina para completar
KB3097997 desinstalado sin reiniciar. Puede que no haya necesidad de desinstalar, pero parece sensato dado que también está sujeto a la misma notificación de MS.
Tuve el mismo problema con Windows 8.1 aunque KB3098779 y 3097997 no estaban instalados en mi máquina. Probablemente sucedió después de la instalación de ASP.Net 5.
El problema era que tenía ambos archivos mcvcr en la versión 12.0.51670.34230 mientras que los archivos mcvcp ya estaban en 12.00.52512.0. Fue suficiente copiar ambos archivos mcvcr (de System32 y SysWOW64) en esta versión desde la computadora de mi colega.
Si tiene problemas con los permisos establecidos en TrustedInstaller en estos archivos, puede ejecutar este comando de powershell y luego cambiar los permisos como Administrador:
takeown /A /F C:/windows/syswow64/msvcr120_clr0400.dll