SQL Server Management Studio 18 no se abrirá (solo aparece la pantalla emergente)


105

Acabo de instalar SSMS 18 GA en una computadora con solo VS2019 instalado, y cuando intento abrir SSMS, aparecerá la pantalla de presentación, pero luego el proceso se cierra.

La ejecución de ssms con el -logparámetro revela un mensaje de error:

Error de CreateInstance para el paquete [Paquete del programador de tareas] Fuente: 'mscorlib' Descripción: No se pudo cargar el archivo o ensamblado 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o uno de sus dependencias La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040) System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una de sus dependencias. La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040) Nombre del archivo: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a '---> System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado' Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'o una de sus dependencias . La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040) Nombre del archivo: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: el registro de enlace de ensamblado está APAGADO. Para habilitar el registro de fallas de enlace de ensamblaje, establezca el valor de registro [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) en 1. Nota: Hay algunas penalizaciones de rendimiento asociadas con el registro de falla de enlace de ensamblaje. Para desactivar esta función, elimine el valor del registro [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

en System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly ensamblado, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) at System.Reflection.RuntimeAssembly.GetType (String name, Boolean throwOnErere.Carne.Crear.Arquitectura, Boolean. assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] ActivationAttributes, Evidence securityInfo, StackCrawlMark & ​​stackMark) en System.Activator.CreateInstance (String assemblyName, String typeDomain) en System. .CreateInstance (String assemblyName, String typeName)

System.IO.FileLoadException: no se pudo cargar el archivo o ensamblado 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una de sus dependencias. La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040) Nombre del archivo: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: el registro de enlace de ensamblado está APAGADO. Para habilitar el registro de fallas de enlace de ensamblaje, establezca el valor de registro [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) en 1. Nota: Hay algunas penalizaciones de rendimiento asociadas con el registro de falla de enlace de ensamblaje. Para desactivar esta función, elimine el valor del registro [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Intenté ejecutar "Reparar" en SSMS e intenté repararlo C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi, pero el problema persiste.


1
El archivo de registro se genera agregando el -logparámetro. Por ejemplo:"C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe" -log C:\drop\log.txt
Mitch

1
También puede obtener el registro de C: \ Users (usuario) \ AppData \ Roaming \ Microsoft \ AppEnv \ 15.0 \ ActivityLog.xml sin usar el modificador -log
Stephane

Respuestas:


125

Acabo de superponer el Microsoft.VisualStudio.Shell.Interop.8.0.dll C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssembliescon la copia de ..\PrivateAssemblies\Interopy se abre el IDE. (Gracias a Mitch por descubrir el nombre ofensivo de la DLL).

Esto parece un Q & A popular hoy, así que me alegra saber que no fui solo yo.


Para mí había una Microsoft.VisualStudio.Shell.Interop.8.0carpeta adicional para copiar.
Andez

Trabajó como un encanto y un salvavidas. Gracias.
HartleySan

Trabajó para mi. Copie de \ PrivateAssemblies en \ PublicAssemblies.
Hairgami_Master

65

Como Ronan Ariely recomienda , se ha publicado una solución oficial que recomienda eliminar una línea de ssms.exe.config.

En C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!-- ...snip... -->
    <runtime>
        <!-- ...snip... -->
        <!-- Remove this line (~line 38) -->
        <NgenBind_OptimizeNonGac enabled="1" />
        <!-- ...snip... -->
    </runtime>
    <!-- ...snip... -->
</configuration>

Si ejecutó mi solución anterior de agregar el ensamblado al GAC, probablemente debería desinstalarlo ejecutando:

gacutil /u Microsoft.VisualStudio.Shell.Interop.8.0,Version=15.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a

1
Cualquier versión de gacutildebería estar bien. O puede usarlopowershell si no tiene instalada una versión del SDK.
Mitch

1
Amor StackExchange para esto. Totalmente trabajado para mi.
Matt The Ninja

Bonito ... este trabajo para mí
Jatin Gadhiya

¿Cómo lo supiste, hombre? ¡Gracias!
Desarrollador

29

Este es un problema conocido y hay una nueva solución oficial publicada por el equipo de desarrolladores de SSMS.

Puede ver el ticket abierto en el sistema de comentarios de Microsoft en el siguiente enlace: https://feedback.azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-not-run

Historia corta:

La primera solución que se presentó fue copiar el archivo:Microsoft.VisualStudio.Shell.Interop.8.0.dll

del directorio: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PrivateAssemblies\Interop

en el directorio: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

Más tarde, se publicó una solución más centrada (que es lo que usé): simplemente elimine el archivoC:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

De todos modos, hace varios días el equipo publicó una actualización como puede ver en el enlace de arriba. Esta es una cita de la respuesta actualizada oficial:

La solución recomendada, mientras tanto, es:

1) Cerrar todas las instancias de SSMS

2) Editar ssms.exe.config

3) Elimine la línea que tiene el siguiente texto (debe ser la línea 38): NgenBind_OptimizeNonGac habilitado = "1"

Ese es el mismo cambio que habrá en la próxima versión de SSMS 18.x

¡Nota! la ubicación del archivo ssms.exe.config está en la carpeta:C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE


1
Esta debería ser la solución aprobada.
Omzig

Deberías @Omzig, pero por alguna razón ni siquiera obtuvo el número máximo de votos😃
Ronen Ariely

1
Solución adecuada .. !! Thans amigo, esto solucionó el problema.
Mohamed Ayas

De nada @MohamedAyas 😃
Ronen Ariely

Tengo SQL Management Studio 2014 pero no tengo esa carpeta. ssms.exe.config está en C: \ Archivos de programa (x86) \ Microsoft SQL Server \ 120 \ Tools \ Binn \ ManagementStudio ... y el contenido no tiene nada que ver con lo mencionado aquí. ¿Alguna ayuda, por favor?
jstuardo

1

Acabo de cruzar el mismo problema en un Server 2016 recién construido con SQL Server 2017 y SSMS 18.0, sin embargo, desapareció después de 2 reinicios durante los cuales el servidor se parchó por completo con parches O / S de marzo de 2019. Trataré de hacer algunas pruebas más para descubrir si realmente fueron los parches O / S lo que ayudaron a esto, pero no estoy al tanto de nada más que se instale mientras tanto en ese servidor.

Parece más aleatorio después de reiniciar, pero lo que he notado ahora es que SSMS funciona justo después de la instalación, pero luego SCCM en mi organización comienza a instalar varias cosas y SSMS deja de funcionar. Ahora el sospechoso es ".NET Framework 3.5 Server Feature 2016"


0

Hay otra solución a este problema. En el elemento de comentarios de Azure, SQL Server Management Studio 18 GA (15.0.18118.0) no es compatible con .NET Framework 4.8 Erich Signer sugiere:

Paso 1:

C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

Cambie el nombre y asegúrese de que este archivo ya no tenga la .pkgdefextensión. O elimine el archivo.

Paso 2:

Elimine la siguiente clave de registro (que se crea en el inicio de SSMS 18 utilizando el archivo ".pkgdef" mencionado anteriormente):

HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\18.0_IsoShell_Config\RuntimeConfiguration\dependentAssembly\bindingRedirection\{8BC7AF31-B6DA-4B97-8B36-F0500DECB147}

Basado en un comentario originalmente dejado por omzig


0

Me enfrenté al mismo problema y después de buscarlo durante un tiempo, encontré el siguiente artículo paso a paso que aborda este problema:

La solución provista es:

Copie el archivo PrivateAssemblies \ Interop \ Microsoft.VisualStudio.Shell.Interop.8.0.dll (el que tiene la versión de ensamblado 15.0.0.0) en la carpeta PublicAssemblies.

Los pasos fueron los siguientes:

  • Primero, como precaución, el autor renombró el existente PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll a otra cosa, en caso de que necesite ese archivo más tarde.
  • Luego copió el Microsoft.VisualStudio.Shell.Interop.8.0.dllarchivo de PrivateAssemblies\InteroplaPublicAssemblies carpeta.

Después de este cambio, el SSMS se cargó sin ningún problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.