.NET流水账

一个真正的开明进步的国家,不是一群奴才造成的,是要有独立个性,有自由思考的人造成的。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    我们知道当使用C++, COM和ATL来开发ActiveX的时候得CAB文件里面的INF文件描述了如何注册以及复制到何处的指令。
但是当我们用C#来开发ActiveX的时候,INF文件里面Registerserver=Yes 不起作用。因为这个命令只是调用regsvr32 来注册相应的组件,他对C#开发的ActiveX不起作用。

1、为了发布C#开发的ActiveX我们首先在2005里面建立一个.NET的MSI文件,如下图所示:



在Setup的Added output file的属性窗口里面,确认将Register property 设置成vsdrpCOM, 这个设置确保了在安装的时候会
调用regasm 来注册ActiveX控件。

2、CAB文件的建立

1[version]
2signature="$CHICAGO$"
3AdvancedINF=2.0
4[Setup Hooks]
5hook1=hook1
6
7[hook1]
8run=msiexec.exe /i "%EXTRACT_DIR%\ActiveXDotDownload.msi" /qn




     注意,浏览器出于安全性考虑,会拦截未经数字认证的控件。修改浏览器设置,在Internet选项-〉安全-〉受信任的站点-〉站点 中添加服务器地址,不要选复选框“对该区域中的所有站点要求服务器验证”。解决浏览器拦截问题,而不用更改浏览器的安全级别。

结束语
本文探讨了使用C# 2.0 在。NET2005平台上面开发ActiveX的可行性,虽然和以往的一些技术手段来比,可能有些不足,但也不失
可以作为一种特殊情况下的手段。

 
 

posted on 2007-08-02 10:17  DalianGary  阅读(2896)  评论(4编辑  收藏  举报