it-swarm.asia

SQL Server Management Studio 18 tidak akan terbuka (hanya layar splash yang muncul)

Saya baru saja menginstal SSMS 18 GA pada komputer dengan hanya VS2019 diinstal, dan ketika saya mencoba untuk membuka SSMS layar splash akan muncul, tetapi kemudian proses keluar.

Menjalankan ssms dengan -log parameter mengungkapkan pesan kesalahan:

CreateInstance gagal untuk paket [Paket Penjadwal Tugas] Sumber: 'mscorlib' Keterangan: Tidak dapat memuat file atau Majelis 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 15.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' atau salah satu dari ketergantungannya. Definisi manifes Majelis yang ditemukan tidak cocok dengan referensi Majelis. (Pengecualian dari HRESULT: 0x80131040) System.IO.FileLoadException: Tidak dapat memuat file atau Majelis 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 15.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' atau salah satu dari dependensinya. Definisi manifes Majelis yang ditemukan tidak cocok dengan referensi Majelis. (Pengecualian dari HRESULT: 0x80131040) Nama file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 15.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' ---> System.IO.FileLoadException: Tidak dapat memuat file atau Majelis 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 8.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' atau salah satu dari ketergantungannya. Definisi manifes Majelis yang ditemukan tidak cocok dengan referensi Majelis. (Pengecualian dari HRESULT: 0x80131040) Nama file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 8.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: logging yang mengikat perakitan dimatikan. Untuk mengaktifkan logging kegagalan ikatan bind, atur nilai registri [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) ke 1. Catatan: Ada beberapa penalti kinerja yang terkait dengan logging gagal bind Assembly. Untuk mematikan fitur ini, hapus nilai registri [HKLM\Software\Microsoft\Fusion! EnableLog].

di System.Reflection.RuntimeAssembly.Tertarik Ketik (RuntimeAssembly Assembly, nama String, Boolean throwOnError, Boolean diabaikanCase, ObjectHandleOnStack type) di System.Reflection.RuntimeAssembly.GetType (nama String, Boolean throwOnCo assemblyString, String typeName, Boolean diabaikanCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] aktivasiAttributes, Evidence securityInfo, StackCrawlMark & ​​stackMark) di System.Activator.CreateInstance (String assemblyName, String nameName, String nameName), .CiptakanateInstance (String assemblyName, String typeName)

System.IO.FileLoadException: Tidak dapat memuat file atau Majelis 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 8.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a' atau salah satu dari ketergantungannya. Definisi manifes Majelis yang ditemukan tidak cocok dengan referensi Majelis. (Pengecualian dari HRESULT: 0x80131040) Nama file: 'Microsoft.VisualStudio.Shell.Interop.8.0, Versi = 8.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a'

WRN: logging yang mengikat perakitan dimatikan. Untuk mengaktifkan logging kegagalan ikatan bind, atur nilai registri [HKLM\Software\Microsoft\Fusion! EnableLog] (DWORD) ke 1. Catatan: Ada beberapa penalti kinerja yang terkait dengan logging gagal bind Assembly. Untuk mematikan fitur ini, hapus nilai registri [HKLM\Software\Microsoft\Fusion! EnableLog].

Saya mencoba menjalankan "Perbaikan" pada SSMS, dan mencoba perbaikan C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi, tetapi masalahnya tetap ada.

107
Mitch

Saya hanya overlay Microsoft.VisualStudio.Shell.Interop.8.0.dll di C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies dengan salinan dari ..\PrivateAssemblies\Interop Dan IDE terbuka. (Terima kasih kepada Mitch karena menemukan nama DLL yang menyinggung.)

Ini terlihat seperti tanya jawab populer hari ini, jadi saya senang mengetahui ini bukan hanya saya.

125
Mark

As Ronan Ariely merekomendasikan , solusi resmi telah dipublikasikan yang merekomendasikan untuk menghapus baris dari ssms.exe.config.

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

Jika Anda menjalankan solusi sebelumnya saya menambahkan Majelis ke GAC, Anda mungkin harus menghapusnya dengan menjalankan:

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

Ini adalah masalah yang diketahui dan ada solusi resmi baru yang diterbitkan oleh tim pengembang SSMS.

Anda dapat melihat tiket terbuka di sistem umpan balik Microsoft di tautan berikut: https://feedback.Azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-not -run

Sejarah singkat:

Solusi pertama yang disajikan adalah menyalin file: Microsoft.VisualStudio.Shell.Interop.8.0.dll

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

ke dalam direktori: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

Kemudian, solusi yang lebih fokus diterbitkan (yang saya gunakan): Cukup hapus file C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

Bagaimanapun, beberapa hari yang lalu tim menerbitkan pembaruan seperti yang Anda lihat di tautan di atas. Ini adalah kutipan dari tanggapan resmi yang diperbarui:

Solusi yang disarankan, untuk sementara, adalah:

1) Tutup semua instance SSMS

2) Edit ssms.exe.config

3) Hapus baris yang memiliki teks berikut (seharusnya menjadi baris 38): NgenBind_OptimizeNonGac enabled = “1”

Itu perubahan yang sama yang akan ada di rilis SSMS 18.x berikutnya

Catatan! lokasi file ssms.exe.config ada di folder: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE

30
Ronen Ariely

Saya baru saja melewati masalah yang sama pada Server 2016 yang baru dibangun dengan SQL Server 2017 & SSMS 18.0, namun hilang setelah 2 reboot dimana server sepenuhnya ditambal dengan patch 2019 O/S Maret. Saya akan mencoba melakukan beberapa pengujian lebih lanjut untuk mengetahui apakah itu benar-benar patch O/S yang membantu ini, tapi saya tidak mengetahui hal lain yang sedang diinstal sementara itu di server itu.

Tampaknya lebih acak setelah reboot, tetapi apa yang saya perhatikan sekarang adalah bahwa SSMS bekerja setelah menginstal, tetapi kemudian SCCM dalam org saya mulai menginstal berbagai hal dan SSMS berhenti bekerja. Sekarang tersangka adalah " .NET Framework 3.5 Server Fitur 2016 "

1
M. Strzelecki

Saya menghadapi masalah yang sama dan setelah mencari beberapa saat untuk masalah ini, saya menemukan artikel selangkah demi selangkah menangani masalah ini:

Solusi yang diberikan adalah:

Salin file PrivateAssemblies\Interop\Microsoft.VisualStudio.Shell.Interop.8.0.dll (file dengan versi Assembly 15.0.0.0) ke dalam folder PublicAssemblies.

Langkah-langkahnya adalah sebagai berikut:

  • Pertama, sebagai tindakan pencegahan, penulis mengganti nama PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll untuk sesuatu yang lain, kalau-kalau saya perlu file itu nanti.
  • Kemudian dia menyalin Microsoft.VisualStudio.Shell.Interop.8.0.dll file dari PrivateAssemblies\Interop ke dalam folder PublicAssemblies.

Setelah perubahan ini, SSMS dimuat tanpa masalah.

1
Hadi

Ada solusi lain untuk masalah ini. Pada item Umpan Balik Azure SQL Server Management Studio 18 GA (15.0.18118.0) tidak kompatibel dengan .NET Framework 4.8 Erich Signer menyarankan:

Langkah 1:

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

Ganti nama dan pastikan file ini tidak memiliki .pkgdef ekstensi lagi. Atau hapus file.

Langkah 2:

Hapus kunci registri berikut (yang dibuat di SSMS 18 Startup menggunakan file ".pkgdef" yang disebutkan di atas):

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

Berdasarkan komentar yang awalnya ditinggalkan oleh omzig

0
user126897