2009-12-11 185 views
6

我使用CABARC.exe创建了一个包含我的ActiveX的cab文件。我也创建了一个.inf文件。我的INF文件看起来像这样:为IE浏览器的ActiveX安装创建CAB文件

[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中打开网页时,我都看不到黄色的条形码了。

有人能帮我一下吗?

+0

任何人可以帮助吗? – vikasde 2009-12-11 21:20:37

+0

嗨Vikasde,你找到了解决这个问题的方法吗? – 2010-01-14 17:30:26

+0

请在底部查看我的回答。 – vikasde 2010-01-19 13:15:15

回答

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 
2
  1. 在我看来,你打包msi安装程序而不是ActiveX控件。
  2. 当您从MSI安装程序中提取控件并将其打包到CAB中时,请不要忘记将其版本添加到INF文件中。

希望它可以帮助...

Packaging ActiveX Controls

1

VS 2008提供了一个极好的CAB项目。您可以在其他项目类型/安装和部署/ CAB项目下找到它。

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

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