在询问Visual如何注册COM库之后,很明显VS为COM注册做了两件事:
Visual似乎使用regasm.exe进行此注册。对于第一部分(直接COM注册),使用tallow或heat (WiX 2.0或WiX 3.0)似乎可以获得所有基本的COM注册信息。
然而,脂肪/热量似乎没有做的是设置一个类型库安装。使用WiX安装程序和regasm.exe创建自定义操作是可能的,但对于基于Microsoft的安装程序,调用自定义操作并不是最佳实践。
经过进一步的研究,看起来msi能够在安装时生成类型库。事实上,WiX似乎对它有直接的支持!在文件元素中,可以添加台风元素。实际上,一篇关于wix的文章有一个用接口元素填充TypeLib元素的示例。
看来,接口元素至少有两个必需的属性:
Larry谈到了接口的其他部分,这些部分一般都需要注册为TypeLib。,这个接口条目似乎负责各个部分。拉里说,我们需要将ProxyStubClassId32指定为"{00020424-0000-0000-C000-000000000046}",这样我们就可以很容易地添加它。
从那里到哪里,以及如何填写各种接口元素,这让我感到困惑。我继续将TypeLib元素添加到我的wix文件中,它成功地编译了。不过,我对如何设置接口元素有点一无所知。我们需要做些什么才能正确地填写TypeLib元素,以及我可以使用哪些应用程序或工具来获得它?
下面wcoenen的答案看起来很有希望.我要试一试。
更新:在下面发布我的最后解决方案作为一个答案。
发布于 2009-03-06 01:32:22
下面是懒人解决这个问题的方法:使用来自heat 3.0的WiX。
如果您有一个自动生成并通过regasm安装的类型库,heat可以在
heat file c:\my\path\to\my.tlb -out tlb.wxs它将生成您需要注册的所有类型和接口元素。这不会解决需要提前了解它们的问题,也不会解决当程序集的版本更改时GUID发生更改的问题(即使接口没有更改--这是您应该更改它的唯一时间),但它会使您在中途完成更改。
发布于 2009-02-20 10:42:10
下面的技巧可以帮助获取任何注册表更改并将它们转换为wxs文件,包括您所要寻找的类型列表元素。
heat.exe,我们可以将reg转换为reg。(需要wix 3.5或更高版本。)
热reg diff.reg -out typelib.wxshttps://stackoverflow.com/questions/567925
复制相似问题