OCX注册WiX

时间:2014-09-01 11:32:01

标签: wix registry installation ocx

我试图在我的WiX设置中添加ocx注册。我这样做:

heat.exe file MyFile.ocx -out C:\TEMP\registration.wxs

并生成一个如下所示的.wx:

<?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_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID,但我找不到ocx的guid。 如果我运行regsvr32.exe e:\ MyFile.ocx

,我可以找到它

更多信息

在msiexec

生成的安装日志中看不到对ocx guids的任何引用

丑陋的解决方案

我将热量生成的碎片复制到我的模块中,它可以正常工作。仍然无法找到如何在分离的文件中引用相同的内容。

2 个答案:

答案 0 :(得分:1)

要使组件成为构建的一部分,您必须将它们作为单个组件或组引用。为了更容易识别组件,热量有一个&#34; -cg&#34;与您一起参数可以是引用所有组件的ComponentGroup。只需将具有适用ID的ComponentGroupRef添加到一个或多个Feature元素即可。

(你还必须在构建中使用.wxs文件,但我认为你已经覆盖了它。)

答案 1 :(得分:0)

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