为ActiveX对象创建WiX安装程序

问题描述 投票:1回答:1

我用力来生成带有注册表项的文件,并且在Visual Studio中创建了一个wix项目。我尝试将片段直接包含在product.wxs中,并将其作为组件组引用。当我执行安装程序时,没有任何反应。要测试是否已正确添加ActiveX对象,请在Internet Explorer中使用new ActiveXObject('<prog ID>'),但不能使用。我猜注册表项还不够。如何添加由ActiveX对象创建的.dll,并确保Internet Explorer可以找到ActiveXObject?

摘自我的评论:这是我正在尝试做的示例回购。我创建了一个带有COM可见函数的类库。它具有一个带有“ ActiveXExample”的ProgId,应该可以使用由WiX创建的ActiveXExampleInstaller .msi安装到计算机上。我运行安装程序,未看到添加注册表项或添加的文件。我很确定这是目录结构的问题,但我还不太了解如何添加文件。 https://github.com/SvenWritesCode/ActiveXExample

visual-studio wix activex
1个回答
0
投票

摘要1) IE安全选项中可能存在一些限制,这些限制使ActiveX控件完全无法运行。 [2)此外,直接注册控件可能会出现问题。

  • 以下是一些可帮助您调试的资源。
  • ActiveX控件是否经过数字签名?
  • 您可以实例化IE之外的控件吗?
  • 这是64位二进制文​​件吗?

[请在下面发表评论,并提供有关github.com的示例?将会返回。


IE:最近,Internet Explorer中的Active X倾向于被关闭吗?

  • 安装用于浏览器访问的ActiveX控件,该控件用于从Web服务器调用安装并从其中下载经过数字签名的安装程序。
  • 这里描述了从网站安装签名的ActiveX控件的过程:Packaging ActiveX Controls with Wix MSI请阅读此链接的答案-重要)]]

  • 查看Windows 10测试盒上的Internet Explorer,似乎实施了很多限制。这是一个示例(不是实际的Windows 10对话框):

  • ActiveX

    COM注册

:与许多其他工具(商业)相比,使用WiX本身进行COM注册有点笨拙。这是一些问题的摘要:Registering COM EXE with WIXNote that 64-bit COM files are not properly handled by WiX(除非最近已修复)。

Heat.exe

:听起来您已经使用过它,但是可以像这样运行heat.exe来获取文件的COM注册信息:
heat.exe file MyCOMDll.dll -out MyCOMDll.wxs

[MyCOMDll.wxs

文件然后必须以某种方式合并到您的主要WiX源中。我只是手动提取需要的内容并注入到主要来源中。这需要一些经验,但并不难。 [If there are problems, maybe your sources can be put on github.com perhaps? So we can take a look?没有信息源总是很难弄清楚事情。

链接

© www.soinside.com 2019 - 2024. All rights reserved.