Sam,
Chaining installers is a general no-no and Microsoft recommend you don't
do it. Second, trying to install software in the Cost Finalise stage is
also not a good idea. Installing something using a custom action makes
it very difficult to roll back should the installation fail or be
cancelled and it makes uninstalling your application difficult if not
impossible. Your installer should allow a clean install and also a
clean removal of you application (including DirectX if your application
installs it) and given the design you are describing, that would be
difficult to achieve.
If you need to install a second application, the recommended method is
to use a bootstrapper such as dotNetInstaller or WiX's own "Burn"
facility. Its likely to cause you a lot less headaches in the long run.
Chris
On 05/04/2011 11:37 AM, Sam Morris wrote:
> I am running into difficulty making an installer support major
> upgrades. My installer has a CustomAction that installs DirectX. When
> installing a newer version of the product, during CostFinalize(!),
> Windows Installer decides not to install the components that contain
> DXSETUP.EXE and dsetup32.dll:
>
> Disallowing installation of component:
> {67628ECC-9735-503B-9EC1-148280D3BE95} since the same component with higher
> versioned keyfile exists
> Disallowing installation of component:
> {83BFB124-42B3-5F67-8801-9D73B55EC4A9} since the same component with higher
> versioned keyfile exists
>
> By the time it comes to run the action that installs DirectX, the files
> no longer exist and the installation fails:
>
> DEBUG: Error 2753: The File 'directx_redist_DXSETUP.exe_f' is not marked
> for installation.
> The installer has encountered an unexpected error installing this package.
> This may indicate a problem with this package. The error code is 2753. The
> arguments are: directx_redist_DXSETUP.exe_f, ,
> MSI (s) (48:64) [15:14:36:309]: Product: Fate of the World -- The
> installer has encountered an unexpected error installing this package. This
> may indicate a problem with this package. The error code is 2753. The
> arguments are: directx_redist_DXSETUP.exe_f, ,
>
> I am puzzled for the following reasons:
>
> 1. The error message says that 'the same component with higher versioned
> keyfile exists', but this is not the case. The files installed by
> both versions of the product are identical. Is the error message
> correct, or does it really mean 'with equal or higher versioned
> keyfile'?
>
> 2. If I'm reading the log correctly, the InstallDirectX action is being
> run before any of the new versions' files have been copied into
> place. The target installation directory is empty if I look for it
> while the installer is displaying the 'error 2753' dialog box.
>
> I'm uploading the relevant bits of the installer source, and the log
> file produced from a failed installation to
> <http://albion.red-redemption.com/~sam/wix>. I'd be grateful if someone
> could take a look.
>
> Regards,
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users