VS Code包管理器安装AutoMapper 8.1.1报错且项目无法启动求助
问题诱因
- NuGet包签名校验失败:待安装的
AutoMapper.Extensions.Microsoft.DependencyInjection 8.1.1及其依赖的AutoMapper 10.1.1的官方仓库主签名已过期,同时你的开发环境NuGet信任策略将该签名链标记为拒绝,导致包无法通过合法性校验,安装中断。 - 依赖版本不匹配:项目文件已写入8.1.1版本的包引用,但NuGet锁文件仍保留旧的8.0.1版本记录,依赖关系无法对齐,导致项目加载时找不到对应版本的包。
- 编译缓存异常:项目之前编译生成的Core、Infrastructure模块的dll缓存依赖未同步更新,触发了反射加载环节的依赖缺失报错。
解决方案
- 第一步:卸载异常安装的包,在API项目根目录执行命令:
dotnet remove package AutoMapper.Extensions.Microsoft.DependencyInjection - 第二步:清理所有残留缓存:
- 执行命令清理NuGet全局缓存:
dotnet nuget locals all --clear - 手动删除API、Core、Infrastructure三个项目下的
bin、obj文件夹,以及解决方案根目录下的packages.lock.json文件(如果存在)
- 执行命令清理NuGet全局缓存:
- 第三步:重新安装适配版本的包:
优先选择无签名问题的版本,可二选一:- 回退到原稳定可用的8.0.1版本,执行命令:
dotnet add package AutoMapper.Extensions.Microsoft.DependencyInjection --version 8.0.1 - 升级到修复了签名问题的更高兼容版本(适配.NET 5即可),执行命令时替换为对应版本号即可
注意:如果必须使用8.1.1版本,可临时在解决方案根目录新增/编辑nuget.config文件,添加配置关闭签名校验,安装完成后建议改回原有配置,避免安全风险
- 回退到原稳定可用的8.0.1版本,执行命令:
- 第四步:还原依赖并编译项目,依次执行以下命令:
dotnet restoredotnet build - 第五步:重启VS Code,触发OmniSharp重新加载项目即可恢复正常。
内容的提问来源于stack exchange,提问作者chuckd
相关产品推荐
相关产品推荐

