安装Add-in后SSMS 17/2016及以下版本启动挂起崩溃求助
解决SSMS启动时因Add-in挂起崩溃的问题
老兄,我之前也碰到过类似的SSMS插件冲突问题,虽然你没更新过SSMS和目标插件,但系统底层的一些隐性变化(比如Windows悄悄更了补丁、其他软件动了依赖库)都可能触发这种问题。下面是几个按优先级排序的排查方案,亲测有效:
1. 先安全模式启动排除插件冲突
先试试用安全模式启动SSMS,强制禁用所有Add-ins,验证是不是插件之间的冲突导致的:
Ssms.exe /SafeMode
如果安全模式能正常打开,那肯定是插件互怼了。接下来你可以逐个启用Add-ins,找到和你需要的那个插件冲突的家伙,把冲突的禁用掉就行。
2. 重置SSMS配置文件
SSMS的用户配置文件搞坏了也会导致插件加载异常,重置一下试试:
- 把所有SSMS窗口都关掉
- 打开命令提示符,敲这个命令:
Ssms.exe /ResetSettings
这会把SSMS的所有设置打回原形,之后再重新装你的目标插件,看看还崩不崩。
3. 调整Add-in的加载行为
有些插件对启动时的加载顺序很敏感,或者依赖的组件没准备好就强行加载,你可以改改它的配置:
- 打开这个路径:
%APPDATA%\Microsoft\SQL Server Management Studio\<你的SSMS版本号>\AddIns(比如SSMS 17对应的是14.0) - 找到你目标插件的
.addin文件,用记事本打开 - 把
<LoadBehavior>的值从3(启动自动加载)改成2(按需加载),这样SSMS启动时不会自动加载它,你手动点插件启动,看看会不会崩 - 顺便检查下
<Assembly>里的DLL路径对不对,别是插件文件被移走或者损坏了
4. 修复.NET框架依赖
SSMS和大部分Add-in都靠.NET框架吃饭,框架出问题插件肯定炸:
- 打开控制面板→程序和功能,找到已装的.NET框架版本,点“更改”然后选“修复”
- 如果你的插件是基于旧版.NET开发的,比如.NET 4.6.2,确保这个版本安装完好,没被其他软件搞坏
5. 深挖事件查看器的报错细节
你提到事件查看器有Ssms.exe的报错,别只看个大概,把完整的异常信息(比如异常代码、调用栈)挖出来,这能直接定位问题:
- 打开事件查看器→Windows日志→应用程序
- 找到Ssms.exe的崩溃事件,看“详细信息”里的异常代码(比如
0xc0000005是内存访问冲突),还有调用栈里是不是提到了你目标插件的DLL - 如果是插件自身代码的问题,要么找开发者要修复版,要么试试关掉插件里的自动扫描、实时监控这类耗资源的功能
6. 换个干净用户账户测试
有时候是你当前Windows账户的权限或配置出问题,导致插件加载失败:
- 建一个新的本地管理员账户
- 用新账户登录,重装SSMS和目标插件,测试能不能正常启动
- 如果新账户没问题,那就是原账户的锅,要么把原账户的SSMS配置迁过去,要么修复原账户的权限
内容的提问来源于stack exchange,提问作者Luka Lovre
相关产品推荐
相关产品推荐

