我最近在我的家用计算机(Windows 10)上安装了SQLServer2017 Express和SSMv18.0,一开始运行良好。但是,在重新启动之后,SSMS拒绝启动。没有错误信息,事件查看器中没有任何内容(据我所知),只有溅出的屏幕,一个可听到的音调,然后.没什么。我在Task中签了名,以查看是否有一个挥之不去的进程锁定了什么东西,但是没有看到任何东西。
一周前我也遇到了同样的问题。我卸载和重新安装了SSMS,并且修复了它( SSMS安装中的常规“修复”选项什么都没有),但这似乎不是运行SSMS的可行方法。
你知道发生了什么事吗?我知道这里的信息很薄,所以我知道在哪里可以查找日志/错误文件吗?
编辑:@SeanGallardy的评论给了我日志。错误信息:
<entry>
<record>111</record>
<time>2019/05/20 19:37:30.130</time>
<type>Error</type>
<source>VisualStudio</source>
<description>CreateInstance failed for package [Task Scheduler Package]Source: 'mscorlib' Description:
Could not load file or assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
System.IO.FileLoadException:
Could not load file or assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileLoadException:
Could not load file or assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
at System.Activator.CreateInstance(String assemblyString, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(String assemblyName, String typeName)
at System.AppDomain.CreateInstance(String assemblyName, String typeName)
System.IO.FileLoadException:
Could not load file or assembly 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.VisualStudio.Shell.Interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description>
<guid>{00CD9DDA-7350-457C-A240-71BD667FC4DE}</guid>
<hr>80004005 - E_FAIL</hr>
</entry>发布于 2019-05-21 00:54:19
这已经在DBA.se的其他地方得到了答案--查看这个答案 --基本上,您只需要复制Microsoft.VisualStudio.Shell.Interop.8.0.dll
C:\Program (X86)\18\Common7\IDE\PrivateAssemblie\Interop
转到
C:\Program (X86)\ 18\Common7\IDE\PublicAssemblies
那么SSMS应该开始行动了。
发布于 2019-05-29 06:53:50
官方的解决方案已经给出了这里,它涉及编辑Ssms.exe.config文件。具体而言:
建议的解决办法是: 1)关闭SSMS的所有实例;2)编辑ssms.exe.config 3)删除具有以下文本的行(应为第38行):NgenBind_OptimizeNonGacenabled=“1”
https://dba.stackexchange.com/questions/238609
复制相似问题