From: Anteru <An...@sh...> - 2008-03-31 13:39:44
|
Hi, I'm using wix-2.0.5805.0 to generate an installer for an application which uses the DirectX. So far, I have successfully embedded the DX9 Redist files and they do get installed, however, I need to run the dsetup.exe binary at the end of the installation. I've tried various calls, ending up with: <CustomAction Id='InstallDX9Redist' Directory='DXRedistDir' Impersonate='no' ExeCommand='[INSTALLDIR]DX9\dxsetup.exe' /> scheduled using <InstallExecuteSequence> <Custom Action='InstallDX9Redist' After='InstallFinalize'>NOT Installed</Custom> </InstallExecuteSequence> which always fails on Vista. I've written a small command-line application which prints the current working directory and the passed parameters, and if I replace dxsetup with it, I see that DXSetup is called in the right folder -- however, if I put in DXSetup, it fails with Error 1721. The output of my program is: Arg (0) : "C:\Program Files (x86)\Company\Test\DX9\dxsetup.exe" Current working directory: C:\Program Files (x86)\Company\Test\DX9 which is what I'd expect. The MSI log output when running the real DXSetup is: >>-------------------------------------------------------------------- MSI (s) (C4:B8) [15:33:02:954]: Doing action: InstallDX9Redist MSI (s) (C4:B8) [15:33:02:954]: Note: 1: 2205 2: 3: ActionText Action start 15:33:02: InstallDX9Redist. MSI (s) (C4:B8) [15:33:03:220]: Note: 1: 1721 2: InstallDX9Redist 3: C:\Program Files (x86)\Company\Test\DX9\ 4: C:\Program Files (x86)\Company\Test\DX9\dxsetup.exe MSI (s) (C4:B8) [15:33:03:220]: Note: 1: 2205 2: 3: Error MSI (s) (C4:B8) [15:33:03:220]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1721 MSI (c) (18:CC) [15:33:03:392]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: InstallDX9Redist, location: C:\Program Files (x86)\Company\Test\DX9\, command: C:\Program Files (x86)\Company\Test\DX9\dxsetup.exe MSI (s) (C4:B8) [15:33:04:454]: Note: 1: 2205 2: 3: Error MSI (s) (C4:B8) [15:33:04:454]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (C4:B8) [15:33:04:454]: Product: Test -- Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: InstallDX9Redist, location: C:\Program Files (x86)\Company\Test\DX9\, command: C:\Program Files (x86)\Company\Test\DX9\dxsetup.exe <<-------------------------------------------------------------------- I searched the web for hints, which only pointed at the "impersonate" attribute, but setting it to yes or no does not help. What am I doing wrong, and what is the recommended way to install such dependencies? I have no problem running a small Boot-Strapper to run the VC9 Installer & the DX9 installer first, but I'd like to have it all in a single package. Thank you, Anteru Side note: The installer also merges the VC9 Runtime, just in case this matters. I'm using: >>-------------------------------------------------------------------- <Merge Id='CRT' Language='0' src='CRT\microsoft_vc90_crt_x86.msm' DiskId='3' /> <Merge Id='CRT Policy' Language='0' src='CRT\policy_9_0_Microsoft_VC90_CRT_x86.msm' DiskId='3' /> and <Feature Id='F_CRT' Level='1' Title='C/C++ Runtime' Description='Visual C++ Runtime Libraries' TypicalDefault='install' Display='hidden'> <MergeRef Id='CRT' /> <MergeRef Id='CRT Policy' /> </Feature> <<-------------------------------------------------------------------- |