C#调试OData项目报错:无法加载程序集Microsoft.AspNet.OData
HRESULT:0x80131045 强名称验证失败排查方案
无法加载文件或程序集“Microsoft.AspNet.OData”或其某一项依赖项,强名称签名无法验证。该程序集可能已被篡改,或是采用延迟签名但未使用正确私钥完成完整签名。(异常代码:HRESULT: 0x80131045)
可按以下顺序排查解决:
- 清理重装NuGet包
先删除项目本地的packages缓存文件夹,再在NuGet包管理器控制台执行命令:Update-Package -reinstall Microsoft.AspNet.OData。确认NuGet默认源为官方nuget.org源,避免从第三方私有源拉取到被篡改的程序包。 - 调整强名称验证配置(仅开发环境可用)
开发调试阶段可临时跳过指定程序集的强名称验证:以管理员权限启动Visual Studio开发者命令提示符,执行命令:sn -Vr *,31bf3856ad364e35。该操作仅适用于本地调试,生产环境禁止使用。 - 检查项目签名配置
打开项目属性页的「签名」选项卡,确认没有错误开启延迟签名配置;如果项目本身不需要强名称签名,直接取消「为程序集签名」的勾选即可。如果确实需要签名,确认使用的密钥文件完整且权限正常。 - 排查依赖版本冲突
检查Microsoft.AspNet.OData关联依赖的版本匹配性,包括Microsoft.AspNet.WebApi.Core、Microsoft.OData.Core、Microsoft.OData.Edm等包,所有OData生态包建议统一升级到同一大版本下的最新稳定版,版本差异也可能触发强名称验证异常。 - 排查安全软件干扰
部分终端安全软件、杀毒软件会在扫描时修改dll文件内容导致签名失效,可临时关闭安全软件后重新编译运行,确认是否为安全软件篡改程序集导致的问题。
内容的提问来源于stack exchange,提问作者scvasquez24
相关产品推荐
相关产品推荐

