如何向Windows Installer XML注册COM对象
我有以下问题:在我的WiX设置中,我需要注册一个COM对象。我有一个“.tlb”文件和一个“.dll”文件(在我的示例中:xycomon.dll和xycomon.tlb) 现在我想进行设置以注册TLB。 如何在Windows Installer XML中执行此操作 我的第一次尝试是使用CustomAction并打开“Regasm.exe”并注册它-但我不知道如何使用Regasm.exe注册xycomon.tlb如何向Windows Installer XML注册COM对象,com,wix,Com,Wix,我有以下问题:在我的WiX设置中,我需要注册一个COM对象。我有一个“.tlb”文件和一个“.dll”文件(在我的示例中:xycomon.dll和xycomon.tlb) 现在我想进行设置以注册TLB。 如何在Windows Installer XML中执行此操作 我的第一次尝试是使用CustomAction并打开“Regasm.exe”并注册它-但我不知道如何使用Regasm.exe注册xycomon.tlb 有什么帮助吗?谢谢使用名为的WiX收割机实用程序。它将生成包含正确注册(和注销)CO
有什么帮助吗?谢谢使用名为的WiX收割机实用程序。它将生成包含正确注册(和注销)COM对象所需的注册表项的WiX源 您的COM对象(xycomon.dll和xycomon.tlb)会经常更改吗 如果否:则只需对这两个文件运行Heat(读取命令行参数并对其进行实验以获得所需的输出),必要时清理它们,然后将它们添加到项目中 如果是: 如果您想尝试将Heat作为Visual Studio预构建事件运行,那么这个答案应该会给您一些指导: 有时,当您使用Heat时,仍然需要稍微调整生成的.wxs文件。因此,您可能希望编写一些包装实用程序,在文件列表或目录上调用heat,然后按照您的意愿清理输出。然后,您可以将该实用程序添加到构建过程中 对单个文件使用加热的示例: heat.exe文件myFile.dll-gg-g1-suid-svb6-out myFile.wxs 在整个目录上使用heat的示例: heat.exe dir myDirectory-gg-g1-suid-svb6-out myDirectory.wxs 我使用的一些参数的明细:
- heat.exe:如果可执行文件不在您的路径中,则必须指定其完整路径
- 文件myFile.dll:指定要在单个文件myFile.dll上运行heat
- dir myDirectory:指定要在目录myDirectory上运行heat
- gg:为组件生成guid
- g1:生成不带花括号的GUI
- suid:禁止为文件和组件创建唯一生成的ID,而是使用文件名作为ID
- svb6:禁止获取VB6运行时的COM信息。注意:如果要注册使用VB6运行时的COM对象,则需要使用此标志,以免覆盖VB6运行时注册表项