我试图在我的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的任何引用丑陋的解决方案
我将热量生成的碎片复制到我的模块中,它可以正常工作。仍然无法找到如何在分离的文件中引用相同的内容。
答案 0 :(得分:1)
要使组件成为构建的一部分,您必须将它们作为单个组件或组引用。为了更容易识别组件,热量有一个&#34; -cg&#34;与您一起参数可以是引用所有组件的ComponentGroup。只需将具有适用ID的ComponentGroupRef添加到一个或多个Feature元素即可。
(你还必须在构建中使用.wxs文件,但我认为你已经覆盖了它。)
答案 1 :(得分:0)
看起来热量无法从OCX文件中获取COM元数据。通常这是一个缺失的依赖。