在做项目的时候,遇到要用第三方库去和PLC做通讯,自己的项目是已经有签名的,直接引用的的话会报错误,如下错误:
“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" AdvancedHMIDrivers.dll /output=AdvancedHMIDrivers.il
(ildam.exe目录、dll替换成本机的&