我遇到了以下问题:在我的WiX设置中,我需要注册一个COM对象。我有一个“.tlb”文件和一个“.dll”文件(在我的例子中:XYCommon.dll和一个XYCommon.tlb) 现在我想让安装程序注册TLB。 如何在Windows Installer XML中执行此操作?
我的第一次尝试是使用CustomAction并打开“Regasm.exe”并注册它 - 但我不知道如何将Regasm.exe注册到XYCommon.tlb
任何帮助?感谢
答案 0 :(得分:12)
使用名为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.exe文件myFile.dll -gg -g1 -suid -svb6 -out myFile.wxs
在整个目录中使用热量的示例:
heat.exe dir myDirectory -gg -g1 -suid -svb6 -out myDirectory.wxs
我使用的一些参数的细分: