向WiX注册OCX

向WiX注册OCX,wix,registry,installation,ocx,Wix,Registry,Installation,Ocx,我正在尝试将ocx注册添加到我的WiX设置中。我这样做: heat.exe file MyFile.ocx -out C:\TEMP\registration.wxs 它生成一个.wxs,如下所示: <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <DirectoryR

我正在尝试将ocx注册添加到我的WiX设置中。我这样做:

heat.exe file MyFile.ocx -out C:\TEMP\registration.wxs
它生成一个.wxs,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="TARGETDIR">
            <Directory Id="dirC202475C84215EEEECB6F7F457B64EC0" Name="data" />
        </DirectoryRef>
    </Fragment>
    <Fragment>
        <DirectoryRef Id="dirC202475C84215EEEECB6F7F457B64EC0">
            <Component Id="cmpEA6A1F59D6A38919A7ABA0CC22077BAD" Guid="PUT-GUID-HERE">
                <File Id="filD9FC7A2F17B4650D687BA4E565868379" KeyPath="yes" Source="SourceDir\data\MyFile.ocx">
                  ...

...
我不知道如何对主wx说,比如Product.wxs如何在安装过程中包含这些信息来注册OCX。 运行安装程序后,我签入HKEY\U LOCAL\U MACHINE\SOFTWARE\Classes\CLSID,但找不到ocx的guid。 如果运行regsvr32.exe e:\MyFile.ocx,我可以找到它

更多信息

在使用msiexec生成的安装日志中看不到对ocx GUID的任何引用

丑陋的解决方案


我把产生热量的碎片复制到我的模块中,它就工作了。仍然无法找到如何在单独的文件中引用相同的内容。

要使组件成为构建的一部分,您必须将它们作为单个组件或组引用。为了更容易识别组件,heat有一个“-cg”参数,您可以标识引用所有组件的组件组。只需将具有适用Id的ComponentGroupRef添加到一个或多个要素元素


(您还必须在构建中使用.wxs文件,但我想您已经涵盖了这一点。)

看起来heat无法从OCX文件中获取COM元数据。通常这是一个缺少的依赖项。

是我的错,我在msm中使用了一个片段