C#未能加载文件或程序集。需要强名称程序集,异常来自 HRESULT:0x80131044

发布时间:2024年01月18日

一、前言

在研发ADFS自定义MFA的时候,官方要求引用的DLL需要是强签名的,但有些第三方的DLL默认并不是强签名的,示例Dapper默认不是强签名的

运行报错:

System.IO.FileLoadException: 未能加载文件或程序集“Dapper, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。需要强名称程序集。 (异常来自 HRESULT:0x80131044)

二、转强签名

微软官方这一系列的说明:具有强名称的程序集 - .NET | Microsoft Learn

我们使用visual studio 上的工具

2.1 生成密钥对
sn -k dappersign.snk

2.2 反汇编

官方反汇编说明:Ildasm.exe(IL 反汇编程序) - .NET Framework | Microsoft Learn

把DLL反汇编成.il的中间语言,以及

ildasm Dapper.dll  /output=Dapper.il

2.3? 重新汇编

? /out 参数就是指定dll输出的名称

ilasm Dapper.il /dll /out=DapperStrong.dll /key=dappersign.snk 

我们把这个重新汇编的dll重新引用 可以看到已经是强签名的了

?

三、自研程序签名

如果是自己自研的类库项目,点击项目属性里的签名

然后就可以实现自研的系统增加强签名了~

文章来源:https://blog.csdn.net/tao20grow/article/details/135645249
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。