.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 @   jeffery1010  Views(435)  Comments(0Edit  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2016-04-01 关于JS call apply 对象、对象实例、prototype、Constructor、__proto__
点击右上角即可分享
微信分享提示