.net开发COM组件之组件签名&注册

基于.net的COM组件开发时,若采用vs强命名方式,则完成后试图将组件注册到XP系统(确切的说是.net4.0以下版本的系统)

REGASM c:libcomdotnetmyCom.dll /tlb:C:WindowsSystem32myCom.tlb

会报错:

Unhandle Exception:System.TypeLoadException:Could not load type:System.reflection.AssembleSignatureKeyAttribute...BalaBalaBala一堆错误信息

信息大致意思是.net4.0环境,在使用REGASM注册时检测到一些依赖方法不存在,简单的方法升级到.net4.5以上版本完事;

但哥哥的环境实力不允许啊(XP系统),只能放弃VS强命名,采用手工签名注册组件;

签名工具

链接:https://pan.baidu.com/s/1_Uc61JabZooTKpJ06K_64g
提取码:ikny  

签名批处理语句:

c:mycommynet32-ossn.exe -k c:mycommynetmycomkey.snk
c:mycommynet32-osildasm mycom.dll /out:c:mycommynetmycom.il
C:WindowsMicrosoft.NETFrameworkv4.0.30319ilasm c:mycommynetmycom.il /dll /key=c:mycommynetmycomkey.snk

 com组件注册

c:mycommynet32-osREGASM c:mycommynetmyCom.dll /tlb:C:WindowsSystem32myCom.tlb

::若为64位系统开发环境
::c:mycommynet64-osREGASM c:mycommynetmyCom.dll /tlb:C:WindowsSysWOW64myCom.tlb

c:mycommynet32-osGACUTIL /u myCom

c:mycommynet32-osGACUTIL /if c:mycommynetmyCom.dll

原文地址:https://www.cnblogs.com/jeffry/p/10634824.html