VS2017加载任意项目崩溃,提示缺失System.Runtime.CompilerServices.Unsafe 4.0.4.1
触发原因
该问题由Visual Studio 2017自带的Roslyn代码解析服务依赖冲突导致:
- VS2017内置的Roslyn组件强依赖
System.Runtime.CompilerServices.Unsafe4.0.4.1版本 - 第三方软件安装、.NET Framework自动更新等操作会将更高版本的该程序集写入全局程序集缓存(GAC),覆盖了原有版本查找逻辑
- VS运行时未配置对应程序集的绑定重定向规则,无法将4.0.4.1版本的依赖请求转发到本地已存在的高版本程序集,最终抛出文件未找到异常导致崩溃
- 该依赖属于VS平台级依赖,和用户项目的代码配置无关,所以未修改的旧项目也会出现相同问题
解决方案
按优先级从高到低尝试以下操作即可:
- 方案1:添加VS配置绑定重定向
- 以管理员权限打开文本编辑器,加载VS2017安装目录下的配置文件,默认路径为
C:\Program Files (x86)\Microsoft Visual Studio\2017\[你的VS版本,Community/Professional/Enterprise]\Common7\IDE\devenv.exe.config
注:修改该文件需要管理员权限,否则无法保存 - 找到
<runtime>节点,在节点内新增如下配置:
<dependentAssembly> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-4.5.1.0" newVersion="你本地已存在的最高版本号,比如4.5.1.0" /> </dependentAssembly>- 保存配置文件后重启Visual Studio即可
- 以管理员权限打开文本编辑器,加载VS2017安装目录下的配置文件,默认路径为
- 方案2:直接补充缺失版本程序集
下载System.Runtime.CompilerServices.Unsafe4.0.4.1版本的NuGet包,解压后将对应.NET Framework版本的dll文件放入上述devenv.exe所在的IDE目录,重启VS即可 - 方案3:修复VS安装
打开Visual Studio Installer,选择对应VS2017实例,点击「更多」-「修复」,等待修复完成后重启即可,该操作会自动还原所有VS自带的依赖文件和默认配置
内容的提问来源于stack exchange,提问作者Astrogator
相关产品推荐
相关产品推荐

