SQL सर्वर प्रबंधन स्टूडियो 18 नहीं खुलेगा (केवल स्प्लैश स्क्रीन पॉप अप)


105

मैंने अभी SSMS 18 GA को एक कंप्यूटर पर स्थापित किया है जिसमें केवल VS2019 स्थापित है, और जब मैं SSMS को खोलने की कोशिश करता हूं तो स्प्लैश स्क्रीन ऊपर आ जाएगी, लेकिन तब यह प्रक्रिया बाहर निकल जाती है।

-logपैरामीटर के साथ रनिंग ssms एक त्रुटि संदेश प्रकट करता है:

CreateInstance पैकेज [कार्य शेड्यूलर पैकेज] के लिए विफल हुआ: स्रोत: 'mscorlib' विवरण: फ़ाइल या असेंबली लोड नहीं कर सका 'Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 15.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a' इसकी निर्भरता। स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040) System.IO.FileLoadException: फाइल या असेंबली को लोड नहीं कर सका 'Microsoft.VisualStudio.Shell.Interop.8.0, वर्जन = 15.0.0.0, कल्चर / न्यूट्रल, PublicKeyToken = b03f5f7f11d50a3a' या इसकी एक निर्भरता। स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040) फ़ाइल का नाम: 'Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 15.0.0.0, संस्कृति = तटस्थ PublicKeyToken = b03f5f7f11d50a3a '---> System.IO.FileLoadException: फ़ाइल या असेंबली लोड नहीं कर सका' Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 8.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f5f5d5a3a । स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040) फ़ाइल का नाम: 'Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 8.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03ff7f11d50a3a'

WRN: असेंबली बाइंडिंग लॉगिंग बंद कर दी गई है। असेंबली बाइंड विफलता लॉगिंग को सक्षम करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) को 1. नोट पर सेट करें: असेंबली बाइंड विफलता लॉगिंग के साथ संबद्ध कुछ प्रदर्शन जुर्माना है। इस सुविधा को बंद करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] को हटा दें।

System.Reflection.RuntimeAssembly.GetType (RuntimeAssembly Assembly, String name, Boolean throwOnError, Boolean ignCase, ObjectHandleOnStack प्रकार) के लिए System.Reflection.RuntimeAssembly.GetType (स्ट्रिंग नाम, बूलियन फेंक) को हटाएं। असेंबलीस्ट्रिंग, स्ट्रिंग टाइपनाम, बूलियन इग्नोरकेस, बाइंडिंगफ्लैग बाइंडिंग, बाइंडर बाइंडर, ऑब्जेक्ट [] आर्ग्स, कल्चरइन्फो कल्चर, ऑब्जेक्ट [] एक्टिवेशन एट्रिब्यूट्स, एविडेंस सिक्योरिटीइन्फो, स्टैकक्रैममार्क और स्टैकमैर्क) System.Activator.CreateInstance (विधानसभा) .CreateInstance (स्ट्रिंग असेंबली का नाम, स्ट्रिंग टाइपनेम)

System.IO.FileLoadException: फ़ाइल या असेंबली को लोड नहीं कर सका 'Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 8.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5fx11d50a3a' या इसकी एक निर्भरता। स्थित असेंबली की प्रकट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040) फ़ाइल का नाम: 'Microsoft.VisualStudio.Shell.Interop.8.0, संस्करण = 8.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03ff7f11d50a3a'

WRN: असेंबली बाइंडिंग लॉगिंग बंद कर दी गई है। असेंबली बाइंड विफलता लॉगिंग को सक्षम करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) को 1. नोट पर सेट करें: असेंबली बाइंड विफलता लॉगिंग के साथ संबद्ध कुछ प्रदर्शन जुर्माना है। इस सुविधा को बंद करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] को हटा दें।

मैंने SSMS पर "मरम्मत" चलाने की कोशिश की, और मरम्मत की कोशिश की C:\ProgramData\Package Cache\{AAA9F15B-AF45-4562-9991-93A848D3A902}v15.0.28307.421\redist\vs2017_isoshell_for_ssms.msi, लेकिन समस्या बनी हुई है।


1
लॉग फ़ाइल -logपैरामीटर को जोड़कर उत्पन्न होती है । उदाहरण के लिए:"C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe" -log C:\drop\log.txt
मिच

1
आप लॉग से C: \ Users (उपयोगकर्ता) \ AppData \ Roaming \ Microsoft \ AppEnv \ 15.0 \ ActivLog.xml से -log स्विच का उपयोग किए बिना प्राप्त कर सकते हैं
स्टीफन

जवाबों:


125

मैं अभी Microsoft.VisualStudio.Shell.Interop.8.0.dll C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssembliesसे कॉपी करता हूं ..\PrivateAssemblies\Interopऔर आईडी आईडी खुलता है। (आक्रामक DLL नाम की खोज के लिए मिच को धन्यवाद।)

यह आज एक लोकप्रिय क्यू एंड ए की तरह दिखता है, इसलिए मुझे यह जानकर खुशी है कि यह सिर्फ मेरे लिए नहीं था।


मेरे लिए एक अतिरिक्त Microsoft.VisualStudio.Shell.Interop.8.0फ़ोल्डर में कॉपी करना था।
एंडेज़

एक आकर्षण और एक जीवन रक्षक की तरह काम किया। धन्यवाद।
हार्टलेसन

मेरे लिए काम किया। \ PublicAssemblies में \ PrivateAssemblies से कॉपी करें ।
बालगामी_मास्टर

65

जैसा कि रोनन एरेली ने फिर से लिखा है , एक आधिकारिक समाधान प्रकाशित किया गया है जो एक पंक्ति को हटाने की सिफारिश करता है ssms.exe.config

इन 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>

यदि आपने GAC में असेंबली को जोड़ने के मेरे पिछले समाधान को चलाया , तो आपको संभवतः इसे चलाकर अनइंस्टॉल करना चाहिए:

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

1
किसी भी संस्करण gacutilठीक होना चाहिए। या यदि आप एसडीके का संस्करण स्थापित नहीं है, तो आप इसका उपयोग कर सकते हैंpowershell
मिच

1
इसके लिए प्यार StackExchange। पूरी तरह से मेरे लिए काम किया।
मैट द निंजा

नाइस .. मेरे लिए यह काम
जतिन गढ़िया

आपको कैसे पता चला, यार ???? धन्यवाद!
डेवलपर

29

यह ज्ञात समस्या है और एसएसएमएस डेवलपर्स टीम द्वारा प्रकाशित नया आधिकारिक समाधान है।

आप निम्न लिंक में Microsoft प्रतिक्रिया प्रणाली पर खुले टिकट देख सकते हैं: https://feedback.azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-ill-not-run

छोटा इतिहास:

पहला वर्कअराउंड जो फाइल को कॉपी करने के लिए प्रस्तुत किया गया था:Microsoft.VisualStudio.Shell.Interop.8.0.dll

निर्देशिका से: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PrivateAssemblies\Interop

निर्देशिका में: C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies

बाद में, एक अधिक केंद्रित समाधान प्रकाशित किया गया था (जो कि मैंने उपयोग किया है): बस फ़ाइल को हटा देंC:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Platform\Microsoft.VisualStudio.MinShell.Interop.pkgdef

किसी भी तरह, कई दिनों पहले टीम एक अपडेट प्रकाशित करती है जैसा कि आप ऊपर दिए गए लिंक में देख सकते हैं। यह आधिकारिक अद्यतन प्रतिक्रिया से एक उद्धरण है:

अंतरिम में अनुशंसित वर्कअराउंड है:

1) SSMS के सभी उदाहरणों को बंद करें

2) ssms.exe.config संपादित करें

3) उस पंक्ति को हटा दें जिसमें निम्नलिखित पाठ है (पंक्ति 38 होनी चाहिए): NgenBind_OptimizeNonGac सक्षम = 1 "

यह वही बदलाव है जो SSMS 18.x की अगली रिलीज में होगा

ध्यान दें! फ़ोल्डर में ssms.exe.config फ़ाइल का स्थान है:C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE


1
यह स्वीकृत वर्कअराउंड होना चाहिए।
ओमजीग

Yous यह @Omzig करना चाहिए, लेकिन किसी कारण से इसे मतदान की अधिकतम संख्या भी नहीं मिली
Ronen Ariely

1
उचित समाधान .. !! थान दोस्त, यह मुद्दा तय किया।
मोहम्मद अयस

आपका स्वागत है @MohamedAyas Ron
Ronen Ariely

मेरे पास SQL ​​प्रबंधन स्टूडियो 2014 है, लेकिन मेरे पास ऐसा कोई फ़ोल्डर नहीं है। ssms.exe.config C: \ Program Files (x86) \ Microsoft SQL Server \ 120 \ Tools \ Binn \ ManagementStudio ... पर है और सामग्री का यहाँ उल्लेख से कोई लेना-देना नहीं है। कोई मदद, कृपया?
jstuardo

1

मैंने SQL Server 2017 और SSMS 18.0 के साथ हाल ही में बनाए गए सर्वर 2016 पर एक ही मुद्दे को पार किया है, हालांकि यह 2 रिबूट के बाद चला गया था जिसके दौरान सर्वर मार्च 2019 ओ / एस पैच के साथ पूरी तरह से पैच किया गया था। मैं यह पता लगाने के लिए कुछ और परीक्षण करने की कोशिश करूंगा कि क्या यह वास्तव में ओ / एस पैच था, जो इसे मदद कर रहा है, लेकिन मैं उस सर्वर पर इस बीच स्थापित किसी और चीज से अनजान हूं।

रिबूट के बाद यह अधिक यादृच्छिक लगता है, लेकिन मैंने अब जो देखा है वह यह है कि एसएसएमएस स्थापित होने के बाद सही काम करता है, लेकिन फिर मेरे मूल में एससीसीएम विभिन्न चीजों को स्थापित करना शुरू कर देता है और एसएसएमएस काम करना बंद कर देता है। अब संदिग्ध ".NET फ्रेमवर्क 3.5 सर्वर फीचर 2016" है


0

इस समस्या का एक और समाधान है। Azure फ़ीडबैक आइटम SQL सर्वर प्रबंधन स्टूडियो 18 GA (15.0.18118.0) .NET फ्रेमवर्क 4.8 Ericher के साथ संगत नहीं है:

चरण 1:

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

नाम बदलें और सुनिश्चित करें कि इस फ़ाइल में .pkgdefअब एक्सटेंशन नहीं है। या फ़ाइल को हटा दें।

चरण 2:

निम्नलिखित रजिस्ट्री कुंजी (जो SSMS 18 स्टार्टअप में बनाई गई है "उपरोक्त .pkgdef" फ़ाइल का उपयोग करके निकालें):

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

एक टिप्पणी के आधार पर मूल रूप से omzig द्वारा छोड़ा गया


0

मुझे इस मुद्दे का सामना करना पड़ा और इस मुद्दे के लिए थोड़ी देर की खोज के बाद, मैंने इस मुद्दे से निपटने के लिए निम्नलिखित चरण-दर-चरण आलेख पाया:

प्रदान किया गया समाधान है:

PublicAssemblies फ़ोल्डर में PrivateAssemblies \ Interop \ Microsoft.VisualStudio.Shell.Interop.8.0.dll फ़ाइल (असेंबली संस्करण 15.0.0.0 के साथ) की प्रतिलिपि बनाएँ।

चरण निम्नलिखित थे:

  • सबसे पहले, एहतियात के तौर पर, लेखक ने मौजूदा PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dllको कुछ और नाम दिया , बस उस स्थिति में मुझे बाद में उस फ़ाइल की आवश्यकता होगी।
  • फिर उसने Microsoft.VisualStudio.Shell.Interop.8.0.dllफाइल PrivateAssemblies\Interopको PublicAssembliesफोल्डर में से कॉपी किया ।

इस परिवर्तन के बाद, SSMS ने बिना किसी समस्या के लोड किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.