Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb6 WiX安装的tabctl32.msm不注册ocx_Vb6_Wix_Windows Installer_Merge Module - Fatal编程技术网

Vb6 WiX安装的tabctl32.msm不注册ocx

Vb6 WiX安装的tabctl32.msm不注册ocx,vb6,wix,windows-installer,merge-module,Vb6,Wix,Windows Installer,Merge Module,我正在将一个旧的VB6应用程序从InstallShield移动到由Visual Studio WiX项目驱动的WiX安装程序。除了需要tabctl32.msm中的Microsoft选项卡控件外,一切都很好。当我把它包括在我的WiX项目中时,OCX会安装,但在我运行regsvr32之前不会工作 使用InstallShield或Visual Studio安装程序,msm可以正确注册其组件。我认为这是男同性恋者的工作 我在每台机器上安装,msi以管理员身份运行。下面是一些简化的WiX代码,说明了问题:

我正在将一个旧的VB6应用程序从InstallShield移动到由Visual Studio WiX项目驱动的WiX安装程序。除了需要tabctl32.msm中的Microsoft选项卡控件外,一切都很好。当我把它包括在我的WiX项目中时,OCX会安装,但在我运行regsvr32之前不会工作

使用InstallShield或Visual Studio安装程序,msm可以正确注册其组件。我认为这是男同性恋者的工作

我在每台机器上安装,msi以管理员身份运行。下面是一些简化的WiX代码,说明了问题:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="TabCtlTest" Language="1033" Version="1.0.0.0" Manufacturer="A Company" UpgradeCode="bd70911b-976f-462d-b381-26bc4dc0758e">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate EmbedCab="yes" />

        <Feature Id="ProductFeature" Title="TabCtlTest" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
            <MergeRef Id="TABCTL32"/>
            <MergeRef Id="COMCAT"/>
            <MergeRef Id="OLEAUT32"/>
        </Feature>
    </Product>

    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Merge Id="TABCTL32" SourceFile="$(env.ProgramFiles)\Common Files\Merge Modules\TABCTL32.MSM" Language="1033" DiskId="1" />
            <Merge Id="COMCAT" SourceFile="$(env.ProgramFiles)\Common Files\Merge Modules\COMCAT.MSM" Language="1033" DiskId="1" />
            <Merge Id="OLEAUT32" SourceFile="$(env.ProgramFiles)\Common Files\Merge Modules\OLEAUT32.MSM" Language="1033" DiskId="1" />
            <Directory Id="ProgramFilesFolder">
                <Directory Id="INSTALLFOLDER" Name="TabCtlTest" />
            </Directory>
        </Directory>
    </Fragment>

    <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
            <Component Id="cmp59A149A53D5CFB2D09E03E213D57D2E4" Guid="{BA66D5C5-0813-4822-9F40-8E5C9B242E8B}">
                <File Id="fil36DDAE6925146DA614B90C0E87BD68AC" KeyPath="yes" Source="..\vbprog\Project1.exe" />
            </Component>
        </ComponentGroup>
    </Fragment>
</Wix>


我正在使用Visual Studio 2015和WiX 3.9。

在与Orca仔细研究不同的msi后,我发现了一些缺失的项目。当我加上

<InstallExecuteSequence>
    <RegisterClassInfo Sequence="4200" />
    <RegisterProgIdInfo Sequence="4300" />
    <WriteRegistryValues Sequence="4400" />
</InstallExecuteSequence>


对于产品节点,它导致COM注册发生。InstallShield和VisualStudio安装程序似乎是自动完成这项工作的,但与许多事情一样,要使用WiX完成这项工作,您必须深入研究并自己解决。不,我没有关于序列号应该是什么的理论。在比较了Orca显示器后,我把它们从帽子里拿了出来。

这与VB6无关。