C#第三方dll 强签名(已有签名)笔记

您所在的位置:网站首页 第一个签名 C#第三方dll 强签名(已有签名)笔记

C#第三方dll 强签名(已有签名)笔记

2024-04-29 07:24| 来源: 网络整理| 查看: 265

在做项目的时候,自己的项目是已经有签名的,直接引用的的话会报错误,如下错误:

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

 网上了解后需要给第三方dll强名,强名的方法大同小异,但是我在根据网上方法做的时候,一直报错,研究了许久,才知道是细节问题,命令行的空格要注意,空格、空格、空格~  所有写下这个笔记。

因为我的项目已经有签名建KEY,所以不需要生成强签名建。(需要生成签名KEY网上查找下哈)

第一步:反编译dll

把需要强签名的DLL放在一个文件夹下,签名建KEY文件也放在同一个文件下,打开命令行窗口(管理员),cd到此文件夹目录,执行以下命令:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe" C:\DapperExtensions.StrongName.dll /output=C:\DapperExtensions.StrongName.il

(ildam.exe目录、dll替换成本机的)

第二部:生成强签名dll

接着执行,以下命令:

"C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe" C:\DapperExtensions.StrongName.il /dll /out=C:\DapperExtensions.StrongName.dll /key=C:\ClsCustomerKEY.snk /resource=C:\DapperExtensions.StrongName.res

就生成了。注意 / 前面都有空格。

重新引用到项目就行了。

第三部:验证dll

还可以验证以下生成的dll

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\sn.exe" -v C:\DapperExtensions.StrongName.dll

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3