it-swarm.com.de

SQL Server Management Studio 18 wird nicht geöffnet (nur der Begrüßungsbildschirm wird angezeigt)

Ich habe gerade SSMS 18 GA auf einem Computer installiert, auf dem nur VS2019 installiert ist, und wenn ich versuche, SSMS zu öffnen, wird der Begrüßungsbildschirm angezeigt, aber der Vorgang wird beendet.

Wenn Sie ssms mit dem Parameter -log Ausführen, wird eine Fehlermeldung angezeigt:

CreateInstance für Paket [Task Scheduler Package] fehlgeschlagen Quelle: 'mscorlib' Beschreibung: Datei oder Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' oder eine von konnte nicht geladen werden seine Abhängigkeiten. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) System.IO.FileLoadException: Datei oder Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) Dateiname: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a' ---> System.IO.FileLoadException: Datei oder konnte nicht geladen werden Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' oder eine ihrer Abhängigkeiten. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) Dateiname: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: Die Protokollierung der Baugruppenbindung ist deaktiviert. Setzen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) auf 1, um die Protokollierung von Assemblybindungsfehlern zu aktivieren. Hinweis: Mit der Protokollierung von Assemblybindungsfehlern sind einige Leistungseinbußen verbunden. Entfernen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog], um diese Funktion zu deaktivieren.

at System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly Assembly, Stringname, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack-Typ) at System.Reflection.RuntimeAssembly.GetType (String name, Boolean throwOnError, Boolean IgnorCase) AssemblyString, String typeName, Boolescher IgnoreCase, BindingFlags BindingAttr, Binder Binder, Object [] -Argumente, CultureInfo-Kultur, Object [] -Aktivierungsattribute, Evidence SecurityInfo, StackCrawlMark & ​​StackMark) unter System.Activator.CreateInstance (String AssemblyName, String TypeName) System .CreateInstance (String AssemblyName, String TypeName)

System.IO.FileLoadException: Datei oder Assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) Dateiname: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: Die Protokollierung der Baugruppenbindung ist deaktiviert. Setzen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) auf 1, um die Protokollierung von Assemblybindungsfehlern zu aktivieren. Hinweis: Mit der Protokollierung von Assemblybindungsfehlern sind einige Leistungseinbußen verbunden. Entfernen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion! EnableLog], um diese Funktion zu deaktivieren.

Ich habe versucht, "Repair" unter SSMS auszuführen, und habe versucht, C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi Zu reparieren, aber das Problem besteht weiterhin.

107
Mitch

Ich habe gerade die Microsoft.VisualStudio.Shell.Interop.8.0.dll in C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies mit der Kopie von ..\PrivateAssemblies\Interop Überlagert und die IDE wird geöffnet. (Danke an Mitch für die Entdeckung des beleidigenden Namens DLL Name.)

Das sieht heute nach einem beliebten Q & A aus, daher bin ich froh zu wissen, dass dies nicht nur ich war.

125
Mark

Als Ronan Ariely empfiehlt , eine offizielle Lösung wurde veröffentlicht , die empfiehlt, eine Zeile aus ssms.exe.config Zu entfernen.

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>

Wenn Sie meine vorherige Lösung zum Hinzufügen der Assembly zum GAC ausgeführt haben, sollten Sie sie wahrscheinlich deinstallieren, indem Sie Folgendes ausführen:

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

Dies ist ein bekanntes Problem, und es gibt eine neue offizielle Problemumgehung, die vom SSMS-Entwicklerteam veröffentlicht wurde.

Sie können das offene Ticket im Microsoft-Feedbacksystem unter folgendem Link anzeigen: https://feedback.Azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-not -run

Kurzgeschichte:

Die erste Problemumgehung bestand darin, die Datei zu kopieren: Microsoft.VisualStudio.Shell.Interop.8.0.dll

aus dem Verzeichnis: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PrivateAssemblies\Interop

in das Verzeichnis: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

Später wurde eine fokussiertere Lösung veröffentlicht (die ich verwendet habe): Entfernen Sie einfach die Datei C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

Wie auch immer, vor einigen Tagen hat das Team ein Update veröffentlicht, wie Sie im obigen Link sehen können. Dies ist ein Zitat aus der offiziellen aktualisierten Antwort:

Die empfohlene Problemumgehung in der Zwischenzeit lautet:

1) Schließen Sie alle Instanzen von SSMS

2) Bearbeiten Sie ssms.exe.config

3) Entfernen Sie die Zeile mit dem folgenden Text (sollte Zeile 38 sein): NgenBind_OptimizeNonGac enabled = "1"

Dies ist die gleiche Änderung, die in der nächsten Version von SSMS 18.x vorgenommen wird

Hinweis! Der Speicherort der Datei ssms.exe.config befindet sich im Ordner: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE

30
Ronen Ariely

Ich habe gerade das gleiche Problem auf einem frisch erstellten Server 2016 mit SQL Server 2017 und SSMS 18.0 behoben. Es wurde jedoch nach zwei Neustarts behoben, bei denen der Server vollständig mit O/S-Patches vom März 2019 gepatcht wurde. Ich werde versuchen, weitere Tests durchzuführen, um herauszufinden, ob es wirklich die O/S-Patches waren, die dies unterstützen, aber mir ist nichts anderes bekannt, das in der Zwischenzeit auf diesem Server installiert wurde.

Nach dem Neustart scheint es zufälliger zu sein, aber ich habe jetzt bemerkt, dass SSMS direkt nach der Installation funktioniert, aber dann SCCM in meiner Organisation beginnt mit der Installation verschiedener Dinge und SSMS funktioniert nicht mehr. Jetzt ist der Verdächtige " .NET Framework 3.5 Server Feature 2016 "

1
M. Strzelecki

Ich hatte das gleiche Problem und nachdem ich eine Weile nach diesem Problem gesucht hatte, fand ich den folgenden schrittweisen Artikel, der sich mit diesem Problem befasste:

Die bereitgestellte Lösung lautet:

Kopieren Sie die Datei PrivateAssemblies\Interop\Microsoft.VisualStudio.Shell.Interop.8.0.dll (die Datei mit Assembly-Version 15.0.0.0) in den Ordner PublicAssemblies.

Die Schritte waren die folgenden:

  • Zunächst benannte der Autor vorsichtshalber das vorhandene PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll zu etwas anderem, nur für den Fall, dass ich diese Datei später brauchen würde.
  • Dann kopierte er die Microsoft.VisualStudio.Shell.Interop.8.0.dll Datei von PrivateAssemblies\Interop in den Ordner PublicAssemblies.

Nach dieser Änderung wurde das SSMS ohne Probleme geladen.

1
Hadi

Es gibt eine andere Lösung für dieses Problem. Auf dem Azure-Feedback-Element SQL Server Management Studio 18 GA (15.0.18118.0) nicht kompatibel mit .NET Framework 4.8 Erich Signer schlägt vor:

Schritt 1:

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

Benennen Sie um und stellen Sie sicher, dass diese Datei nicht mehr die Erweiterung .pkgdef Hat. Oder entfernen Sie die Datei.

Schritt 2:

Entfernen Sie den folgenden Registrierungsschlüssel (der beim Start von SSMS 18 mit der oben genannten Datei ".pkgdef" erstellt wird):

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

Basierend auf einem Kommentar, der ursprünglich von omzig hinterlassen wurde

0
user126897