2014-09-01 108 views
1

我想添加到我的WiX设置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> 
     <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"> 
        ... 

我不知道怎么说的主要WXS,说Product.wxs如何将之纳入信息在安装过程中注册OCX。 运行安装程序后,我检查HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ CLSID,但找不到ocx的guid。 我能找到它,如果我运行regsvr32.exe的E:\ MyFile.ocx

更多信息

看不到在安装日志与MSIEXEC

产生的OCX的GUID任何参考丑陋的解决方案

我将热生成片段复制到我的模块,它的工作原理。仍然无法找出如何引用分离文件上的相同内容。

回答

1

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

(您也可以使用.wxs文件在构建但我想你已经有了覆盖。)

+0

是我的错,我在一个MSM中使用片段 – Ymir 2014-09-03 08:02:03

0

看起来热量未能收获COM从OCX文件元数据。通常这是一个缺失的依赖。