我遇到了以下问题:在我的 WiX 设置中,我需要注册一个 COM 对象。我有一个“.tlb”文件和一个“.dll”文件(在我的示例中:XYCommon.dll 和一个 XYCommon.tlb)现在我想进行设置以注册 TLB。如何在 Windows Installer XML 中执行此操作?
我的第一次尝试是使用 CustomAction 并打开“Regasm.exe”并注册它 - 但我不知道如何将 Regasm.exe 用于注册 XYCommon.tlb
任何帮助?谢谢
使用名为Heat的 WiX 收割机实用程序。它将生成包含正确注册(和注销)您的 COM 对象所需的注册表项的 WiX 源。
您的 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 的示例:
heat.exe 目录 myDirectory -gg -g1 -suid -svb6 -out myDirectory.wxs
我使用的一些参数的细分: