gpt4 book ai didi

windows - 使用 WiX 生成和安装 Typelib

转载 作者:可可西里 更新时间:2023-11-01 12:14:20 36 4
gpt4 key购买 nike

asking about what Visual Studio does to register a COM Library 之后,很明显 VS 为 COM 注册做了两件事:

  1. 注册 COM 库
  2. 创建并注册类型库

Visual Studio 似乎使用 regasm.exe 进行注册。对于第一部分(直接 COM 注册),使用 tallowheat(WiX 2.0 或 WiX 3.0)似乎可以正确获取所有基本 COM 注册信息。

但是,tallow/heat 似乎没有设置类型库安装。可以使用 WiX 安装程序和 regasm.exe 创建自定义操作来执行此操作,但对于基于 Microsoft 安装程序的安装程序而言,调用自定义操作并不是最佳做法。

经过进一步研究,msi 似乎能够在安装时生成类型库。事实上,WiX 似乎直接支持它!在文件元素中,您可以添加 Typelib元素。事实上,an article over here on wix有一个用 Interface 填充 TypeLib 元素的例子元素。

似乎接口(interface)元素至少有两个必需的属性:

  1. 身份证
  2. 姓名

Larry Osterman speaks about the other parts of the interface that need to be registered for a TypeLib in general ,并且此接口(interface)条目似乎负责各个部分。 Larry 说我们需要将 ProxyStubClassId32 指定为“{00020424-0000-0000-C000-000000000046}”,这样我们就可以轻松添加它。

从那里去哪里以及为各种界面元素填写什么让我很困惑。我已经将 TypeLib 元素添加到我的 wix 文件中,并且它成功编译了。不过,我对如何设置界面元素一无所知。我们需要做什么才能正确填写 TypeLib 元素,我可以使用哪些应用程序或工具来获取它?

wcoenen 的以下答案看起来很有希望......我要试一试。

更新:在下面发布我的最终解决方案作为答案。

最佳答案

下面是解决此问题的懒人方法:使用 WiX 3.0 中的 heat

如果你有一个自动生成的类型库并通过 regasm 安装,heat 可以将 .tlb 作为参数在

heat file c:\my\path\to\my.tlb -out tlb.wxs

它将生成您需要注册的所有类型库和界面元素。这不会解决需要提前了解它们的问题,也不会解决程序集版本更改时 GUID 更改的问题(即使界面没有 - 这是您唯一一次'我们应该改变它)但它会让你中途到达那里。

关于windows - 使用 WiX 生成和安装 Typelib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567925/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com