SQL Server Management Studio 18 açılmıyor (yalnızca açılış ekranı açılıyor)


105

Sadece VS2019 yüklü bir bilgisayara SSMS 18 GA kurdum ve SSMS'yi açmaya çalıştığımda açılış ekranı açılacak, ancak işlem bitiyor.

Ssms -logparametresiyle çalıştırmak bir hata mesajı verir:

[Görev Zamanlayıcı Paketi] paketi için CreateInstance başarısız oldu Kaynak: 'mscorlib' Açıklama: 'Dosya veya derleme yüklenemedi' Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 15.0.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a 'veya biri bağımlılıkları. Bulunan montajın manifest tanımı montaj referansı ile eşleşmiyor. (HRESULT İstisna: 0x80131040) System.IO.FileLoadException: 'Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 15.0.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a' veya bağımlılıklarından biri dosya veya derleme yüklenemedi. Bulunan montajın manifest tanımı montaj referansı ile eşleşmiyor. (HRESULT İstisnası: 0x80131040) Dosya adı: 'Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 15.0.0.0, Kültür = nötr, PublicKeyToken = b03f5f7f11d50a3a '---> System.IO.FileLoadException: Dosya veya derleme yüklenemedi' Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 8.0.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a 'bağımlılığı . Bulunan montajın manifest tanımı montaj referansı ile eşleşmiyor. (HRESULT İstisnası: 0x80131040) Dosya adı: 'Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 8.0.0.0, Kültür = nötr, PublicKeyToken = b03f5f7f11d50a3a'

WRN: Montaj ciltleme günlüğü KAPALI. Derleme bağlama hatası günlüğünü etkinleştirmek için [HKLM \ Software \ Microsoft \ Fusion! EnableLog] kayıt değerini (1) DWG olarak ayarlayın. Bu özelliği kapatmak için [HKLM \ Software \ Microsoft \ Fusion! EnableLog] kayıt değerini kaldırın.

System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly derleme, Dize adı, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack türü) 'de assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Ciltçi Bağlayıcı, Nesne [] args, CultureInfo kültürü, Object [] activationAttributes, Evidence securityInfo, StackCrawlMark & ​​stackMark) .CreateInstance (Dize montajıAdı, Dize tipiAdı)

System.IO.FileLoadException: Dosya veya derleme 'Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 8.0.0.0, Culture = nötr, PublicKeyToken = b03f5f7f11d50a3a' veya bağımlılıklarından biri yüklenemedi. Bulunan montajın açık tanımı montaj referansı ile eşleşmiyor. (HRESULT İstisnası: 0x80131040) Dosya adı: 'Microsoft.VisualStudio.Shell.Interop.8.0, Sürüm = 8.0.0.0, Kültür = nötr, PublicKeyToken = b03f5f7f11d50a3a'

WRN: Montaj ciltleme günlüğü KAPALI. Derleme bağlama hatası günlüğünü etkinleştirmek için [HKLM \ Software \ Microsoft \ Fusion! EnableLog] kayıt değerini (1) DWG olarak ayarlayın. Bu özelliği kapatmak için [HKLM \ Software \ Microsoft \ Fusion! EnableLog] kayıt değerini kaldırın.

SSMS'de "Onar" ı çalıştırmayı denedim ve onarmayı denedim C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi, ancak sorun devam ediyor.


1
Günlük dosyası -logparametre eklenerek oluşturulur . Örneğin:"C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe" -log C:\drop\log.txt
Mitch,

1
Günlüğü, C: \ Users (kullanıcı) \ AppData \ Roaming \ Microsoft \ AppEnv \ 15.0 \ ActivityLog.xml dosyasından -log anahtarını kullanmadan da alabilirsiniz
Stephane

Yanıtlar:


125

Ben sadece Microsoft.VisualStudio.Shell.Interop.8.0.dll içinde C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblieskopya ile gelen ..\PrivateAssemblies\Interopve IDE açılır. (Sorunlu DLL adını keşfettiği için Mitch'e teşekkürler.)

Bu günümüzde popüler bir soru-cevap gibi gözüküyor, bu yüzden sadece ben olmadığımı bildiğim için memnunum.


Benim Microsoft.VisualStudio.Shell.Interop.8.0için kopyalanacak ek bir klasör vardı .
Andez

Bir cazibe ve hayat kurtarıcı gibi çalıştı. Teşekkürler.
HartleySan

Benim için çalıştı. Kopya dan \ PublicAssemblies içine \ PrivateAssemblies.
Hairgami_Master

65

Olarak Ronan Ariely reccomends , resmi bir çözelti, yayınlanmış bir çizgi kaldırma tavsiye eder ssms.exe.config.

İçinde 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>

Benim kaçarsa önceki çözüm GAC montaj ekleme, muhtemelen çalıştırarak kaldırmak olmalıdır:

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

1
Herhangi bir sürümü gacutiliyi olmalı. Ya da kurulu bir SDK sürümüne sahip değilseniz kullanabilirsinizpowershell .
Mitch,

1
Bunun için StackExchange'i seviyorum. Tamamen benim için çalıştı.
Matt Ninja

.. Benim için bu iş güzel
Jatin Gadhiya

Bunu nasıl bildin, dostum ???? Teşekkür ederim!
Geliştirici

29

Bu bilinen bir sorundur ve SSMS geliştiricileri ekibi tarafından yayınlanan resmi bir geçici çözüm vardır.

Açık bileti Microsoft geribildirim sisteminde aşağıdaki linkte görüntüleyebilirsiniz: https://feedback.azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-not-run

Kısa tarih:

Sunulan ilk geçici çözüm dosyayı kopyalamaktı:Microsoft.VisualStudio.Shell.Interop.8.0.dll

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

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

Daha sonra, daha odaklı bir çözüm yayınlandı (kullandığım buydu): Dosyayı kaldırınC:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

Her neyse, birkaç gün önce ekip yukarıdaki linkte görebileceğiniz şekilde bir güncelleme yayınladı. Bu, resmi güncellenmiş yanıttan bir alıntı:

Önerilen geçici çözüm geçici olarak:

1) SSMS'nin tüm örneklerini kapatın

2) ssms.exe.config dosyasını düzenleyin

3) Aşağıdaki metni içeren satırı kaldırın (satır 38 olmalıdır): NgenBind_OptimizeNonGac etkin = “1”

Bu, SSMS 18.x'in bir sonraki sürümünde olacak olan aynı değişiklik.

Not! ssms.exe.config dosyasının konumu klasördedir:C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE


1
Bu onaylanmış geçici çözüm olmalıdır.
Omzig

Sizce @Omzig olmalı, ama bir sebepten ötürü maksimum oy kullanma hakkına sahip değildi😃
Ronen Ariely

1
Uygun geçici çözüm .. !! Thans dostum, bu sorunu çözdü.
Mohamed Ayas

En hoş geldiniz @MohamedAyas 😃
Ronen Ariely

SQL Management Studio 2014'üm var ama böyle bir klasörüm yok. ssms.exe.config C: \ Program Files (x86) \ Microsoft SQL Server \ 120 \ Tools \ Binn \ ManagementStudio ... 'dadır ve içeriğin burada belirtilenlerle hiçbir ilgisi yoktur. Herhangi bir yardım lütfen?
jstuardo

1

Aynı sorunu yeni oluşturduğum bir Server 2016'da SQL Server 2017 & SSMS 18.0 ile yeni çözdüm, ancak sunucunun Mart 2019 O / S yamalarıyla tamamen yamasının yapıldığı 2 yeniden başlatmanın ardından ortadan kalktı. Buna gerçekten yardımcı olan O / S yamaları olup olmadığını anlamak için biraz daha test yapmaya çalışacağım, ancak bu arada bu sunucuya yükleyen başka bir şeyden habersiz.

Yeniden başlatmalardan sonra daha rastgele görünüyor, ancak şu anda fark ettiğim şey SSMS'nin yüklendikten hemen sonra çalışması, ancak daha sonra kuruluşumdaki SCCM'nin çeşitli şeyler yüklemeye başlaması ve SSMS'nin çalışmayı durdurması. Şimdi şüpheli ".NET Framework 3.5 Sunucu Özelliği 2016" dır.


0

Bu sorunun başka bir çözümü var. Azure Feedback öğesinde, SQL Server Management Studio 18 GA (15.0.18118.0) .NET Framework 4.8 ile uyumlu değil Erich Signer şunları söylüyor :

Aşama 1:

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

Yeniden adlandırın ve bu dosyanın .pkgdefartık uzantısı olmadığından emin olun . Veya dosyayı kaldırın.

Adım 2:

Aşağıdaki Kayıt Defteri Anahtarını kaldırın (yukarıda belirtilen ".pkgdef" dosyasını kullanarak SSMS 18 Başlangıç'ta oluşturulur):

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

Başlangıçta omzig tarafından bırakılan bir yoruma göre


0

Aynı sorunla karşılaştım ve bu sorun için bir süre aradıktan sonra, bu soruna ilişkin adım adım makaleyi buldum:

Sağlanan çözüm:

PrivateAssemblies \ Interop \ Microsoft.VisualStudio.Shell.Interop.8.0.dll dosyasını (montaj sürümü 15.0.0.0 olanı) PublicAssemblies klasörüne kopyalayın.

Adımlar şunlardı:

  • Öncelikle, önlem olarak yazar PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll, daha sonra bu dosyaya ihtiyacım olması durumunda var olanı başka bir şeyle yeniden adlandırdı .
  • Sonra kopyalanan Microsoft.VisualStudio.Shell.Interop.8.0.dlldosyayı PrivateAssemblies\Interopiçine PublicAssembliesklasöre.

Bu değişiklikten sonra, SSMS sorunsuz bir şekilde yüklenmiştir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.