加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何使用Windows Installer XML注册COM-Object

发布时间:2020-12-14 05:46:33 所属栏目:Windows 来源:网络整理
导读:我有以下问题:在我的WiX设置中,我需要注册一个COM对象.我有一个“.tlb”文件和一个“.dll”文件(在我的例子中:XYCommon.dll和一个XYCommon.tlb) 现在我想让安装程序注册TLB. 如何在 Windows Installer XML中执行此操作? 我的第一次尝试是使用CustomAction
我有以下问题:在我的WiX设置中,我需要注册一个COM对象.我有一个“.tlb”文件和一个“.dll”文件(在我的例子中:XYCommon.dll和一个XYCommon.tlb)
现在我想让安装程序注册TLB.
如何在 Windows Installer XML中执行此操作?

我的第一次尝试是使用CustomAction并打开“Regasm.exe”并注册它 – 但我不知道如何将Regasm.exe注册到XYCommon.tlb

任何帮助?谢谢

解决方法

使用名为 Heat的WiX收集器实用程序.它将生成包含必要注册表项的WiX源,以正确注册(和取消注册)COM对象.

您的COM对象(XYCommon.dll和XYCommon.tlb)会经常更改吗?

如果没有:那么只需在这两个文件上运行Heat(读取命令行参数并试验它们以获得所需的输出),必要时进行清理,然后将它们添加到项目中.

如是:

如果你想尝试运行Heat作为Visual Studio预建事件,这个SO答案应该给你一些指导:Add a folder to installer in wix not files?

有时当你使用Heat时,你仍然需要稍微调整生成的.wxs文件.因此,您可能希望编写一些在文件列表或目录上调用heat的包装实用程序,然后按照您希望的方式清理输出.然后,您可以将该实用程序添加到构建过程中.

在单个文件上使用heat的示例:

heat.exe file myFile.dll -gg -g1 -suid -svb6 -out myFile.wxs

在整个目录上使用heat的示例:

heat.exe dir myDirectory -gg -g1 -suid -svb6 -out myDirectory.wxs

我使用的一些参数的细分:

> heat.exe:如果不在您的路径中,您必须指定可执行文件的完整路径> file myFile.dll:指定要对单个文件myFile.dll运行加热> dir myDirectory:指定要在目录myDirectory上运行heat> gg:为组件生成guid> g1:生成没有花括号的guids> suid:禁止为文件和组件创建唯一生成的ID,而是使用文件名作为ID> svb6:抑制收集VB6运行时的COM信息.注意:如果要注册使用VB6运行时的COM对象,则需要使用此标志,以便不覆盖VB6运行时注册表项

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读