ActiveX控件无法注册

时间:2014-08-20 15:35:38

标签: c# internet-explorer activex

我已经创建了一个ActiveX控件,它将文档打印到特殊打印机(假设用户当然正在使用IE)。当我使用regasm /codebase C:\path-to-dll手动注册它时,控件完全正常。下一步是通过将以下内容插入我的网页来自动安装:

<object name="MyPrinter" style="display: none;" id="MyPrinter" classid="CLSID:1F668100-532A-4077-BEDE-1610AF2CC6DF" codebase="@Url.Content("~/Cabinets/MyPrinter.cab")"></object>

访问该页面时,IE会提示安装该控件。安装完成后,当我尝试使用控件时,我会得到经典的“自动化服务器无法创建对象”。

我使用iexpress.exe创建了CAB文件。 .msi文件是使用InstallShield项目创建的。我正在使用Visual Studio 2013。

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

问题的简短答案是检查是否:

  • dll使用代码签名证书
  • 签名
  • msi安装程序使用codesign certificate
  • 签名
  • 包含msi安装程序的cab文件使用codesign certificate
  • 进行签名
  • cab文件的链接是https://somewhere/within/you/website/my.cab
  • 安装驾驶室不直接使用msiexec,而是在驾驶室内调用一些exe

有关详细的方法,请查看this answer