为IE安装ActiveX安装创建CAB文件

时间:2009-12-11 16:29:55

标签: installation activex

我使用CABARC.exe创建了一个包含myx的cab文件。我还创建了一个.inf文件。我的inf文件如下所示:

[version]
    signature="$CHICAGO$"
    AdvancedINF=2.0
[Add.Code]
    MySetup.exe=MySetup.exe
[MySetup.exe]
    file-win32-x86=thiscab
    clsid={49892510-B520-4b35-8ADF-57084DD2F717}

我的HTML看起来像这样:

<object name="secondobj" style='display:none' id='TestActivex'  
 classid='CLSID:49892510-B520-4b35-8ADF-57084DD2F717' 
 codebase='http://myurl/MySetup.cab#version=1,0,0,0'></object>

我使用以下命令创建了CABARC:

C:\tools\Cab\BIN>CABARC.EXE N MySetup.cab MySetup.msi setup.inf

我还在受信任的网站上添加了http://myurl。现在我第一次在IE中打开html页面时,我看到了一个黄色条,我接受了。但是它从未安装过activex控件。我没有看到我的程序文件中的安装,也没有在事件日志或临时下载文件夹或“管理加载项”中看到任何内容。现在,每当我在IE中打开网页时,我都看不到黄色条了。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:2)

  1. 在我看来,你正在打包msi安装程序而不是ActiveX控件。
  2. 当您从MSI安装程序中提取控件并将其打包到CAB时,请不要忘记将其版本添加到INF文件中。
  3. 希望它有所帮助...

    Packaging ActiveX Controls

答案 1 :(得分:1)

VS 2008提供了一个出色的CAB项目。您可以在其他项目类型/设置和部署/ CAB项目下找到它。

对于简单的CAB项目,您只需添加组件项目输出。

如果您还需要对CAB进行签名,则必须编辑项目属性,添加post build signtool.exe命令,但是一旦您能够通过cmd行对组件进行签名,您只需将命令行复制到post build事件即可。 使用$(ProjectDir)宏可以帮助推广自动构建的过程。

答案 2 :(得分:1)

看起来我的.inf已经关闭了。这对我有用:

[version]
Signature="$CHICAGO$"
AdvancedINF=2.0

[Setup Hooks]
hook1=hook1

[hook1]
run=msiexec.exe /i "%EXTRACT_DIR%\MySetup.msi" /qn

制作出租车:

CABARC.EXE N MyActiveX.cab MySetup.msi setup.inf