最近用C#开发了一个ActiveX控件,并且让该控件实现了IObjectSafety接口(该接口的实现肯定没有问题).
    然后在项目属性中我设置了使“程序集COM可见”和“为COM Interop注册”两个选项!!
    打包的时候我设置了项目生成的tlb类型库的Register属性为vsdrpCOM!!我觉得应该没有什么需要设置的了,然后打包。。
    我找了台测试机,配置好环境后,进行安装打包程序,一切正常,可是打包引用该控件的网页时候,总是提示没有安装控件,是否安装,这可如何是好,在网上找了很多的资料,说都是打成CAB包的,还有用我这种方法的,由于我的打包程序里有很多其他的类库,打成CAb包难度较大,所以选择了这种方式
    请问高手们,谁能解决次问题,我先谢谢了

解决方案 »

  1.   

    我也有这样问题,最后没高手指导,只能让用户自己安装,因为是特殊行业,用户还可以接受,哈哈,有解决方案发一份给我哦,MSN:[email protected],谢谢
      

  2.   

    ActiveX控件的打包发布[无证书发布](一) [转自ActiveX控件的打包发布[无证书发布](一)  ]最近为了解决一个ActiveX的技术问题,用VB做了一个ActiveX控件,什么功能都没有, 就是测试一下ActiveX的发布,以及版本更新!折腾了两天,总算搞明白其中的一些过程!顺便记一下,免得忘记!看过一篇文章,介绍了用C#来开发ActiveX的功能,但是C#只能做托管的程序,需要.net framework在客户端安装后,才能运行!所以,我最终开发,还是用VB6,VC++6来开发。      从制作测试ActiveX控件、打包装、发布的步骤如下:
         VB开发ActiveX控件步骤:
         1、创建一个ActiveX Control的项目     2、绘制ActiveX控件的操作界面,并且编写代码     3、特别注意:在项目的属性上的Make页,有一个Version Number区域,需要你写当前控件的           版本号,这个地方和自动下载有密切关系!当你远端的Web浏览器检查到本机的控件版本号           和服务器上不一样的时候,浏览器就会自动从服务器下载新版本控件进行安装,所以你编译           的新版本控件一定要改版本号!否则可能导致远程无法更新。      4、编译ActiveX控件       ActiveX控件打包步骤:       本例子以Studio 6.0自带的打包工具为例。              1、选择当前选用的VB ActiveX项目进行打包。       2、其中在选择Package Type的时候有3个选项:            1)Standard setup package            2)Internet Package            3)Dependency File            选择第二个!        3、到选择File Source的时候有3个选项:
                 1)Include in this cab             2)download from microsoft web site             3)download from alternate web site             以上选项是针对程序包含的每一个相关dll,ocx的,所以,如果你要修改参数,需要一个个文件设置!            我建议是都选择第一项!因为有些控件从外部更新,可能会遇见证书之类的问题,            可能导致你的程序无法使用,因此,全部使用本地的是最省心的选择!            打包过程的其他步骤,没有特别说明的,全部用默认设置!       4、在发布控件的网站根目录下建一个目录,就叫ActiveX吧,把打包装后的Package目录中的所有文件             复制到ActiveX目录。        5、打包完成后修改测试例子htm文件:             打包完成后,工具会自动产生一个和项目名称一样的htm文件,里面代码如下:<HTML>
    <HEAD>
    <TITLE>WebActiveX.CAB</TITLE>
    </HEAD>
    <BODY>
    <!-- If any of the controls on this page require licensing, you must
     create a license package file. Run LPK_TOOL.EXE to create the
     required LPK file. LPK_TOOL.EXE can be found on the ActiveX SDK,
     http://www.microsoft.com/intdev/sdk/sdk.htm. If you have the Visual
     Basic 6.0 CD, it can also be found in the \Tools\LPK_TOOL directory. The following is an example of the Object tag:<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
     <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
    </OBJECT>
    --><OBJECT ID="ActiveXDrive"
    CLASSID="CLSID:F68EC215-0F14-416F-B680-FF8C772A0B47"
    CODEBASE="WebActiveX.CAB#version=1,1,0,0">修改为:CODEBASE="http://130.50.26.221/ActiveX/WebActiveX.CAB#version=1,1,0,0">
    </OBJECT>
    </BODY>
    </HTML>注意上面红色字体部分。客户端IE设置:
    1、打开IE->Internet 选项->安全->internet,把安全级设置为低!要注意“自定级别”里面,     有没有对ActiveX的限制,要是有全放开!2、要是安装有防火墙软件的,要注意这些软件对http访问有没有限制,要是有全放开! 最后一步:嘿嘿,在另一台电脑上访问发布ActiveX控件的服务器。应该成功了吧!
    http://www.cnblogs.com/GavinCome/archive/2008/08/02/1258905.html
      

  3.   

    http://homer.cnblogs.com/archive/2005/01/26/97822.aspx
    有源码.有真像
      

  4.   

    在线安装要数字证书的,因为客户端一般不会降低IE安全性或添加你的网站为信任的。
    没证书的话让客户下载安装包后手动装倒是可以,.NET Framework包也要一起打进安装包中。
      

  5.   

    感谢zzx509的回复,只能这样了,谢谢哦