我用力来生成带有注册表项的文件,并且在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
摘要:
1)
IE安全选项中可能存在一些限制,这些限制使ActiveX控件完全无法运行。 [2)
此外,直接注册控件可能会出现问题。
- 以下是一些可帮助您调试的资源。
- ActiveX控件是否经过数字签名?
- 您可以实例化IE之外的控件吗?
- 这是64位二进制文件吗?
[请在下面发表评论,并提供有关github.com的示例?将会返回。
IE:最近,Internet Explorer中的Active X倾向于被关闭吗?
这里描述了从网站安装签名的ActiveX控件的过程:Packaging ActiveX Controls with Wix MSI(请阅读此链接的答案-重要)]]
查看Windows 10测试盒上的Internet Explorer,似乎实施了很多限制。这是一个示例(不是实际的Windows 10对话框):
COM注册
Note that 64-bit COM files are not properly handled by WiX
(除非最近已修复)。Heat.exe
:听起来您已经使用过它,但是可以像这样运行heat.exe
来获取文件的COM注册信息:文件然后必须以某种方式合并到您的主要WiX源中。我只是手动提取需要的内容并注入到主要来源中。这需要一些经验,但并不难。 [heat.exe file MyCOMDll.dll -out MyCOMDll.wxs
[
MyCOMDll.wxs
If there are problems, maybe your sources can be put on github.com perhaps? So we can take a look?
没有信息源总是很难弄清楚事情。链接
: