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

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

REGASM c:\libcom\dotnet\myCom.dll /tlb:C:\Windows\System32\myCom.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:\mycom\mynet\32-os\sn.exe -k c:\mycom\mynet\mycomkey.snk
c:\mycom\mynet\32-os\ildasm mycom.dll /out:c:\mycom\mynet\mycom.il
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm c:\mycom\mynet\mycom.il /dll /key=c:\mycom\mynet\mycomkey.snk

 com组件注册

c:\mycom\mynet\32-os\REGASM c:\mycom\mynet\myCom.dll /tlb:C:\Windows\System32\myCom.tlb

::若为64位系统开发环境
::c:\mycom\mynet\64-os\REGASM c:\mycom\mynet\myCom.dll /tlb:C:\Windows\SysWOW64\myCom.tlb

c:\mycom\mynet\32-os\GACUTIL /u myCom

c:\mycom\mynet\32-os\GACUTIL /if c:\mycom\mynet\myCom.dll

 

posted @ 2019-04-01 10:05  jeffery1010  Views(427)  Comments(0Edit  收藏  举报