Search code examples
wixwix4

EXE prerequisite installs fine with WiX bundle, but WiX returns install failed


I'm building a bundle to install some driver prerequisites along with my main application using WiX 4.0 and the HeatWave Visual Studio extension.

I've got the bundle up and running, and all the prerequisites install fine, but one of the three EXEs is causing a pretty vague error:

My WXS file:

<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:bal ="http://wixtoolset.org/schemas/v4/wxs/bal">
  <Bundle Name="MINEiMiniSetupBundle" Manufacturer="TODO Manufacturer" Version="1.0.0.0" UpgradeCode="ba8f7558-8d8e-497c-95c7-aca4bc5cb362">
    <BootstrapperApplication>
      <bal:WixStandardBootstrapperApplication LicenseUrl="https://www.example.com/license" Theme="hyperlinkLicense" />
    </BootstrapperApplication>

    <Chain>
        <ExePackage Id="Corel" SourceFile="Drivers\easyvhstodvdv3driverx64_kz06axd1ful.exe" Permanent="yes"/>
        <ExePackage Id="Phidget" SourceFile="Drivers\phidget22-x64_1.6.20201218.exe" Permanent="yes" />
        <ExePackage Id="dpInstaller" SourceFile="Drivers\BBelectronics\Windows\dpinst64.exe" Permanent="yes">
            <Payload SourceFile="Drivers\BBelectronics\Windows\DPInst.xml" />
            <Payload Name=".\Drivers\ftdibus.cat" SourceFile="Drivers\BBelectronics\Windows\Drivers\ftdibus.cat" />
            <Payload Name=".\Drivers\ftdibus.inf" SourceFile="Drivers\BBelectronics\Windows\Drivers\ftdibus.inf" />
            <Payload Name=".\Drivers\ftdiport.cat" SourceFile="Drivers\BBelectronics\Windows\Drivers\ftdiport.cat" />
            <Payload Name=".\Drivers\ftdiport.inf" SourceFile="Drivers\BBelectronics\Windows\Drivers\ftdiport.inf" />
            <Payload Name=".\Drivers\ftd2xx.h" SourceFile="Drivers\BBelectronics\Windows\Drivers\ftd2xx.h" />
            <Payload Name=".\Data\eula0409.txt" SourceFile="Drivers\BBelectronics\Windows\Data\eula0409.txt" />
            <Payload Name=".\Data\SideImage.bmp"  SourceFile="Drivers\BBelectronics\Windows\Data\SideImage.bmp" />
            <Payload Name=".\Data\TopImage.bmp"  SourceFile="Drivers\BBelectronics\Windows\Data\TopImage.bmp" />

            <Payload Name=".\Drivers\i386\ftser2k.sys"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftser2k.sys" />
            <Payload Name=".\Drivers\i386\ftserui2.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftserui2.dll" />
            <Payload Name=".\Drivers\i386\ftcserco.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftcserco.dll" />
            <Payload Name=".\Drivers\i386\ftbusui.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftbusui.dll" />
            <Payload Name=".\Drivers\i386\ftd2xx.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftd2xx.dll" />
            <Payload Name=".\Drivers\i386\ftd2xx.lib"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftd2xx.lib" />
            <Payload Name=".\Drivers\i386\ftdibus.sys"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftdibus.sys" />
            <Payload Name=".\Drivers\i386\ftlang.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\i386\ftlang.dll" />

            <Payload Name=".\Drivers\amd64\ftser2k.sys"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftser2k.sys" />
            <Payload Name=".\Drivers\amd64\ftserui2.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftserui2.dll" />
            <Payload Name=".\Drivers\amd64\ftcserco.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftcserco.dll" />
            <Payload Name=".\Drivers\amd64\ftbusui.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftbusui.dll" />
            <Payload Name=".\Drivers\amd64\ftd2xx64.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftd2xx64.dll" />
            <Payload Name=".\Drivers\amd64\ftd2xx.lib"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftd2xx.lib" />
            <Payload Name=".\Drivers\amd64\ftdibus.sys"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftdibus.sys" />
            <Payload Name=".\Drivers\amd64\ftlang.dll"  SourceFile="Drivers\BBelectronics\Windows\Drivers\amd64\ftlang.dll" />

            <Payload Name=".\Drivers\Static\amd64\ftd2xx.lib"  SourceFile="Drivers\BBelectronics\Windows\Drivers\Static\amd64\ftd2xx.lib" />
            <Payload Name=".\Drivers\Static\i386\ftd2xx.lib"  SourceFile="Drivers\BBelectronics\Windows\Drivers\Static\i386\ftd2xx.lib" />
        </ExePackage>
        
        
    </Chain>

  </Bundle>
</Wix>

The issue is with the .exe that has all of the dependencies: dpInstaller.

Here is the error generated in the install log:

[5CE0:467C][2023-06-14T10:55:02]i301: Applying execute package: dpInstaller, action: Install, path: C:\ProgramData\Package Cache\367B4EA5A422D7C8FA14832B08DA119C60A43E9B7C493385587DCF69AF6FF42B\dpinst64.exe, arguments: '"C:\ProgramData\Package Cache\367B4EA5A422D7C8FA14832B08DA119C60A43E9B7C493385587DCF69AF6FF42B\dpinst64.exe"'
[5CE0:467C][2023-06-14T10:55:08]i366: The process for package: dpInstaller exited with code: 0x200. The exit code has been translated to type: Error and restart: None.
[5CE0:467C][2023-06-14T10:55:08]e000: Error 0x80070200: Process returned error: 0x200
[64F8:1D64][2023-06-14T10:55:08]e000: Error 0x80070200: Failed to configure per-machine EXE package.
[64F8:1D64][2023-06-14T10:55:08]i319: Applied execute package: dpInstaller, result: 0x80070200, restart: None
[5CE0:467C][2023-06-14T10:55:08]e000: Error 0x80070200: Failed to execute EXE package.
[64F8:1D64][2023-06-14T10:55:08]e000: Error 0x80070200: Failed to execute EXE package.
[5CE0:467C][2023-06-14T10:55:08]i351: Removing cached package: dpInstaller, from path: C:\ProgramData\Package Cache\367B4EA5A422D7C8FA14832B08DA119C60A43E9B7C493385587DCF69AF6FF42B\

Does anything silly/obvious standout here that I might be missing? I'm very new to application deployment/packaging.

Note: this is for a super legacy product, and unfortunately I don't have much access to the files I'm packaging - I have to simply automate the prerequisite install process.


Solution

  • The log file tells you everything we know:

    The process for package: dpInstaller exited with code: 0x200.
    The exit code has been translated to type: Error and restart: None.
    

    Why did dpInst64.exe return 0x200? What does 0x200 mean to dpInst64.exe? If 0x200 is not an error, then use the ExitCode element to interpret 0x200 correctly. If it is an error... well, see the first question.

    Note: Maybe this dpInst documentation helps but at that point, you've switched to a dpInst question, not a WiX question.