it-swarm.it

SQL Server Management Studio 18 non si apre (viene visualizzata solo la schermata iniziale)

Ho appena installato SSMS 18 GA su un computer con solo VS2019 installato, e quando provo ad aprire SSMS verrà visualizzata la schermata iniziale, ma poi il processo verrà chiuso.

L'esecuzione di sms con il parametro -log Rivela un messaggio di errore:

CreateInstance non riuscito per il pacchetto [Pacchetto Utilità di pianificazione] Origine: 'mscorlib' Descrizione: Impossibile caricare il file o l'assemblaggio 'Microsoft.VisualStudio.Shell.Interop.8.0, Versione = 15.0.0.0, Cultura = neutro, PublicKeyToken = b03f5f7f11d50a3a' o uno di le sue dipendenze. La definizione manifest dell'Assemblea individuata non corrisponde al riferimento dell'Assemblea. (Eccezione da HRESULT: 0x80131040) System.IO.FileLoadException: Impossibile caricare il file o l'Assemblea 'Microsoft.VisualStudio.Shell.Interop.8.0, Versione = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una delle sue dipendenze. La definizione manifest dell'Assemblea individuata non corrisponde al riferimento dell'Assemblea. (Eccezione da HRESULT: 0x80131040) Nome file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' ---> System.IO.FileLoadException: Impossibile caricare il file o Assembly "Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" o una delle sue dipendenze. La definizione manifest dell'Assemblea individuata non corrisponde al riferimento dell'Assemblea. (Eccezione da HRESULT: 0x80131040) Nome file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: la registrazione dell'associazione dell'assieme è disattivata. Per abilitare la registrazione degli errori del bind Assembly, impostare il valore del registro [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) su 1. Nota: è presente una penalità delle prestazioni associata alla registrazione degli errori del bind Assembly. Per disattivare questa funzione, rimuovere il valore di registro [HKLM\Software\Microsoft\Fusion! EnableLog].

at System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly Assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) su System.Reflection.RuntimeAssembly.GetType (String name, Boolean throwOnError.CreareCreareCode) assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] activAttributes, Evidence securityInfo, StackCrawlMark & ​​stackMark) su System.Activator.CreateInstance (String assemblyName, String typeName) su System.AppD .CreateInstance (String assemblyName, String typeName)

System.IO.FileLoadException: impossibile caricare il file o l'assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' o una delle sue dipendenze. La definizione manifest dell'Assemblea individuata non corrisponde al riferimento dell'Assemblea. (Eccezione da HRESULT: 0x80131040) Nome file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: la registrazione dell'associazione dell'assieme è disattivata. Per abilitare la registrazione degli errori del bind Assembly, impostare il valore del registro [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) su 1. Nota: è presente una penalità delle prestazioni associata alla registrazione degli errori del bind Assembly. Per disattivare questa funzione, rimuovere il valore di registro [HKLM\Software\Microsoft\Fusion! EnableLog].

Ho provato a eseguire "Repair" su SSMS e ho provato a riparare C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi, Ma il problema persiste.

107
Mitch

Ho appena sovrapposto Microsoft.VisualStudio.Shell.Interop.8.0.dll in C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies con la copia da ..\PrivateAssemblies\Interop e il IDE. (Grazie a Mitch per aver scoperto il reato DLL.)

Sembra una domanda e risposta popolare oggi, quindi sono felice di sapere che non ero solo io.

125
Mark

Come Ronan Ariely lo consiglia , è stata pubblicata una soluzione ufficiale che consiglia di rimuovere una riga da ssms.exe.config.

In 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>

Se hai eseguito il mio soluzione precedente di aggiungere l'Assemblea al GAC, probabilmente dovresti disinstallarlo eseguendo:

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

Questo è un problema noto e c'è una nuova soluzione ufficiale pubblicata dal team di sviluppatori SSMS.

È possibile visualizzare il ticket aperto sul sistema di feedback Microsoft nel seguente collegamento: https://feedback.Azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-not run

Breve storia:

La prima soluzione alternativa presentata è stata la copia del file: Microsoft.VisualStudio.Shell.Interop.8.0.dll

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

nella directory: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

Successivamente, è stata pubblicata una soluzione più mirata (che è quello che ho usato): è sufficiente rimuovere il file C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

Ad ogni modo, diversi giorni fa il team pubblica un aggiornamento come puoi vedere nel link sopra. Questa è una citazione dalla risposta ufficiale aggiornata:

La soluzione alternativa raccomandata, nel frattempo, è:

1) Chiudere tutte le istanze di SSMS

2) Modifica ssms.exe.config

3) Rimuovere la riga con il seguente testo (dovrebbe essere la riga 38): NgenBind_OptimizeNonGac enabled = “1”

Questa è la stessa modifica che sarà nella prossima versione di SSMS 18.x

Nota! il percorso del file ssms.exe.config è nella cartella: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE

30
Ronen Ariely

Ho appena superato lo stesso problema su un Server 2016 appena costruito con SQL Server 2017 e SSMS 18.0, tuttavia è andato via dopo 2 riavvii durante i quali il server è stato completamente patchato con patch O/S di marzo 2019. Proverò a fare qualche altro test per capire se sono state davvero le patch O/S ad aiutare questo, ma nel frattempo non sono a conoscenza di nessun'altra installazione su quel server.

Sembra più casuale dopo il riavvio, ma quello che ho notato ora è che SSMS funziona subito dopo l'installazione, ma poi SCCM nella mia organizzazione inizia a installare varie cose e SSMS smette di funzionare. Ora il sospetto è " Funzionalità server .NET Framework 3.5 2016 "

1
M. Strzelecki

Ho affrontato lo stesso problema e dopo aver cercato per un po 'questo problema, ho trovato il seguente articolo passo-passo che affronta questo problema:

La soluzione fornita è:

Copiare il file PrivateAssemblies\Interop\Microsoft.VisualStudio.Shell.Interop.8.0.dll (quello con la versione Assembly 15.0.0.0) nella cartella PublicAssemblies.

I passaggi sono stati i seguenti:

  • Innanzitutto, per precauzione, l'autore ha rinominato il PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll a qualcos'altro, nel caso avessi bisogno di quel file in seguito.
  • Quindi ha copiato il Microsoft.VisualStudio.Shell.Interop.8.0.dll file da PrivateAssemblies\Interop nella cartella PublicAssemblies.

Dopo questa modifica, SSMS è stato caricato senza alcun problema.

1
Hadi

C'è un'altra soluzione a questo problema. Nella voce Feedback di Azure SQL Server Management Studio 18 GA (15.0.18118.0) non compatibile con .NET Framework 4.8 Erich Signer suggerisce:

Passo 1:

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

Rinomina e assicurati che questo file non abbia .pkgdef extension più. Oppure rimuovi il file.

Passo 2:

Rimuovere la seguente chiave di registro (che viene creata all'avvio di SSMS 18 usando il file ".pkgdef" menzionato sopra):

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

Basato su un commento originariamente lasciato da omzig

0
user126897