views:

338

answers:

1

I'm doing an installer for an software used for debugging embedded ARM cores (OpenOCD) and this installer automatically removes the previous versions - that's simple. However, sometimes that would be desirable to have more than just one version installed (each version has it's own folder, so there's no conflict here) due to various (in-)compatibility issues etc.

I'm trying to create an installer which would have an option in the Feature tree (or anywhere else) to uninstall (or not) the previous version.

Basically there is this install sequence:

<InstallExecuteSequence>
    <Custom Action="NewerVersionDetected" After="FindRelatedProducts">DOWNGRADE</Custom>
    <RemoveExistingProducts After="InstallFinalize"/>
</InstallExecuteSequence>

I know that RemoveExistingProducts can be made conditional by putting a condition between RemoveExistingProducts tags but... what should the condition be? There's a lot of info about making features conditional or about conditions like OS version and some registry entries, but I haven't found any useful info about "user-defined conditions"...

Let's say that in the feature tree there is this element:

<Feature Id="UninstallOlderVersionFeature" Title="Uninstal previous versions" Level="1" Description="..."/>

How to make uninstallation previous version conditional on this feature (or any other method the user could select during the installation - a question box or a separate window or whatever it takes)?

Any help appreciated (by me and the users of the installer), as I'm not very good in Wix and XML (I'm an embedded person (; )

If any more details on the whole Wix file are required - tell me and I'll post relevant bits.

+2  A: 

Try this:

<RemoveExistingProducts After="InstallFinalize">
<![CDATA[&UninstallOlderVersionFeature=3]]>
</RemoveExistingProducts>

It is the state wether the feature is selected. "3" says that the Feature is selected for installation.

martin
That's it - thank you very much!
Freddie Chopin