编程将 .Net Assembly 里的类注册成 COM 类

编程将 .Net Assembly 里的类注册成 COM 类
最近要实现在 IE 右键弹出的上下文菜单中添加自定义菜单项并响应
因此要将 .Net Assembly 注册成 COM 类
当然手工使用一系列命令行可以实现:
参阅 QuickStart 交互操作 -> 生成可从 COM 客户端调用的 .NET COM 服务器 :
http://localhost/quickstart/howto/doc/Interop/Building_Samples_COM2NET.aspx

当然编程引用 Process 调用 tlbexp.exe、gacutil.exe、regasm.exe 等一系列命令行实现亦可,还是较麻烦!
其实还有更简单的方法,两句话搞定:

 System.EnterpriseServices.Internal.Publish P = new System.EnterpriseServices.Internal.Publish();
 //P.GacInstall(asmFile);
 P.RegisterAssembly(asmFile);
 System.Windows.Forms.MessageBox.Show("ok");

下载中是一套完整的 Solution:
https://files.cnblogs.com/Microshaoft/RegAsm2Com.rar


1. Asm4ComApplication : 是一个要安装的应用程序
2. RegAsm2ComInstaller : 是一个包含 自定义操作 的 安装程序类 (Custom Action Installer) 的控制台应用程序
3. Setup1 : 是用于安装 Asm4ComApplication 的安装项目


该 Setup 实现了如下主要功能:
1.编程将 .Net Assembly 注册成 COM 类
(另外,Setup 安装项目:
 "应用程序文件夹" -> "文件安装属性" -> "Register" [vsdraCOM,vsdraCOMRelativePath]
也可将 .Net Assembly 直接在安装期间注册成 COM 类,无需编程)
2.在 IE 右键弹出的上下文菜单中添加自定义菜单项(Microshaoft 显示 Img Src Url)并响应

posted @ 2005-04-27 18:58  于斯人也  阅读(2598)  评论(3编辑  收藏  举报