SQL Server Management Studio 18이 열리지 않습니다 (스플래쉬 화면 만 나타남)


105

VS2019 만 설치된 컴퓨터에 SSMS 18 GA를 방금 설치했으며 SSMS를 열려고하면 스플래시 화면이 나타나지만 프로세스가 종료됩니다.

-log매개 변수 와 함께 ssms를 실행 하면 오류 메시지가 나타납니다.

패키지 [작업 스케줄러 패키지]에 대한 CreateInstance가 실패했습니다. 원본 : 'mscorlib'설명 : 파일 또는 어셈블리 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'또는 파일 중 하나를로드 할 수 없습니다 의존성. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040) System.IO.FileLoadException : 파일 또는 어셈블리 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040) 파일 이름 : 'Microsoft.VisualStudio.Shell.Interop.8.0, 버전 = 15.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a '---> System.IO.FileLoadException : 파일 또는 어셈블리'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a '또는 해당 종속성 중 하나를로드 할 수 없습니다 . 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040) 파일 이름 : 'Microsoft.VisualStudio.Shell.Interop.8.0, 버전 = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

WRN : 어셈블리 바인딩 로깅이 꺼져 있습니다. 어셈블리 바인드 실패 로깅을 사용 가능하게하려면 레지스트리 값 [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD)를 1로 설정하십시오. 참고 : 어셈블리 바인드 실패 로깅과 관련하여 일부 성능 저하가 있습니다. 이 기능을 끄려면 레지스트리 값 [HKLM \ Software \ Microsoft \ Fusion! EnableLog]를 제거하십시오.

System.Reflection.RuntimeAssembly.GetType (RunTimeAssembly 어셈블리, 문자열 이름, 부울 throwOnError, 부울 ignoreCase, ObjectHandleOnStack 유형) System.Reflection.RuntimeAssembly.GetType (문자열 이름, 부울 throwOnError, 부울 ignoreCase) at System.Activator.CreateInstance (String System.AppDomain의 assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object [] args, CultureInfo culture, Object [] activationAttributes, Evidence securityInfo, StackCrawlMark & ​​stackMark) System.AppDomain에서 System.AppDomain의 CreateInstance (String assemblyName, String typeName) .CreateInstance (문자열 assemblyName, 문자열 typeName)

System.IO.FileLoadException : 파일 또는 어셈블리 'Microsoft.VisualStudio.Shell.Interop.8.0, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040) 파일 이름 : 'Microsoft.VisualStudio.Shell.Interop.8.0, 버전 = 8.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

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
Mitch

1
-log 스위치를 사용하지 않고 C : \ Users (user) \ AppData \ Roaming \ Microsoft \ AppEnv \ 15.0 \ ActivityLog.xml에서 로그를 가져올 수 있습니다
Stephane

답변:


125

방금 Microsoft.VisualStudio.Shell.Interop.8.0.dll을 C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\PublicAssemblies복사본과 겹쳐서 ..\PrivateAssemblies\InteropIDE가 열립니다. 문제가되는 DLL 이름을 찾은 Mitch에게 감사합니다.

이것은 오늘날 인기있는 Q & A처럼 보이므로 이것이 나만이 아니라는 것을 알게되어 기쁩니다.


나를 위해 추가 Microsoft.VisualStudio.Shell.Interop.8.0로 복사 할 폴더 가있었습니다 .
Andez

매력과 생명의 은인처럼 일했습니다. 감사.
HartleySan

나를 위해 일했다. 복사 에서 \ PublicAssemblies에 \ PrivateAssemblies.
Hairgami_Master

65

으로 로난 애리 얼리는 reccomends , 공식 솔루션은 게시 된 에서 선을 제거하는 것을 권장한다 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괜찮습니다. 또는 SDK 버전이 설치되어 있지 않은 경우 사용할 수 있습니다powershell .
Mitch

1
이것을 위해 Love StackExchange. 완전히 나를 위해 일했습니다.
매트 닌자

니스 ..이 작품은 나를 위해
Jatin Gadhiya

어떻게 알았어 ????? 감사합니다!
개발자

29

이것은 알려진 문제이며 SSMS 개발자 팀이 게시 한 새로운 공식 해결 방법이 있습니다.

다음 링크에서 Microsoft 피드백 시스템의 공개 티켓을 볼 수 있습니다. https://feedback.azure.com/forums/908035-sql-server/suggestions/37502512-ssms2018-installed-but-will-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 enabled =“1”

SSMS 18.x의 다음 릴리스에서 변경 될 내용과 동일합니다.

노트! ssms.exe.config 파일의 위치는 다음 폴더에 있습니다.C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE


1
승인 된 해결 방법이어야합니다.
Omzig

통 더는 @Omzig해야하지만, 어떤 이유로도 voting😃의 최대 수있어하지 않았다
Ronen에 애리 얼리

1
적절한 해결 방법 .. !! 친구보다,이 문제를 해결했습니다.
29

@MohamedAyas 😃
Ronen Ariely

SQL Management Studio 2014가 있지만 그러한 폴더가 없습니다. ssms.exe.config는 C : \ Program Files (x86) \ Microsoft SQL Server \ 120 \ Tools \ Binn \ ManagementStudio ...에 있으며 여기에 언급 된 내용과 관련이 없습니다. 도와주세요?
jstuardo

1

방금 SQL Server 2017 및 SSMS 18.0을 사용하여 새로 구축 된 Server 2016에서 동일한 문제를 겪었지만 2 번의 재부팅 후 서버가 2019 년 3 월 O / S 패치로 완전히 패치 된 후에 사라졌습니다. 실제로이를 지원하는 O / S 패치인지 확인하기 위해 몇 가지 테스트를 더 시도하지만 그 동안 해당 서버에 설치하는 다른 것을 알지 못합니다.

재부팅 후 더 무작위로 보이지만, 지금 주목 한 것은 SSMS가 설치 직후 작동하지만 조직의 SCCM이 다양한 것을 설치하기 시작하고 SSMS가 작동을 멈추는 것입니다. 이제 용의자는 ".NET Framework 3.5 Server Feature 2016"입니다.


0

이 문제에 대한 또 다른 해결책이 있습니다. Azure 피드백 항목 에서 .NET Framework 4.8과 호환되지 않는 SQL Server Management Studio 18 GA (15.0.18118.0)에서 Erich Signer는 다음을 제안합니다.

1 단계:

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

이 파일의 이름을 바꾸고 .pkgdef더 이상 확장자 가 없는지 확인하십시오 . 또는 파일을 제거하십시오.

2 단계:

다음 레지스트리 키 (위에서 언급 한 ".pkgdef"파일을 사용하여 SSMS 18 시작시 생성됨)를 제거하십시오.

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

omzig 님이 원래 남긴 댓글에 기반


0

나는 같은 문제에 직면 하여이 문제에 대해 잠시 동안 검색 한 후이 문제를 해결하는 다음 단계별 기사를 발견했습니다.

제공되는 솔루션은 다음과 같습니다.

PrivateAssemblies \ Interop \ Microsoft.VisualStudio.Shell.Interop.8.0.dll 파일 (어셈블리 버전이 15.0.0.0 인 파일)을 PublicAssemblies 폴더에 복사하십시오.

단계는 다음과 같습니다.

  • 먼저 예방책으로 저자 PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.8.0.dll는 나중에 해당 파일이 필요할 경우를 대비 하여 기존 이름 을 다른 것으로 바꿨 습니다.
  • 그런 다음 Microsoft.VisualStudio.Shell.Interop.8.0.dll파일을 폴더 PrivateAssemblies\Interop로 복사했습니다 PublicAssemblies.

이 변경 후 SSMS가 문제없이로드되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.