Have you tried using a custom action, instead of a launch condition to
block install?
e.g.
<Upgrade Id="$(var.Property_UpgradeCode)">
<UpgradeVersion OnlyDetect="yes"
Minimum="$(var.version)"
Property="NEWERVERSIONDETECTED"
IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="yes"
Maximum="$(var.version)"
Property="OLDERVERSIONDETECTED"
IncludeMaximum="no" />
</Upgrade>
<CustomAction Id="CA_BlockInstall" Error="!(loc.MyError)" />
<InstallExecuteSequence>
<Custom Action="CA_BlockInstall" After="FindRelatedProducts">
<![CDATA[NEWERVERSIONDETECTED Or OLDERVERSIONDETECTED]]>
</Custom>
<LaunchConditions After="AppSearch" />
</InstallExecuteSequence>
<InstallUISequence>
<Custom Action="CA_BlockInstall" After="FindRelatedProducts">
<![CDATA[NEWERVERSIONDETECTED Or OLDERVERSIONDETECTED]]>
</Custom>
<LaunchConditions After="AppSearch" />
</InstallUISequence>
On Fri, Dec 18, 2009 at 9:44 AM, Jason T. <[email protected]> wrote:
> Hello,
>
> I'm trying to detect when a different version of my package has
> already been installed so that I can abort the installation. I'm not
> looking to do the "major upgrade", I just want to abort if either an
> older or a newer version is found (if the version is the same the
> repair/remove logic already functions correctly). I have added this:
>
> <Upgrade Id='$(var.UpgradeCode)'>
> <UpgradeVersion OnlyDetect='yes' Minimum='$(var.ProductVersion)'
> Property='NEWERVERSIONDETECTED' IncludeMinimum='no' />
> <UpgradeVersion OnlyDetect='yes' Maximum='$(var.ProductVersion)'
> Property='OLDERVERSIONDETECTED' IncludeMaximum='no' />
> </Upgrade>
>
> <Condition Message="Another version of this package is already
> installed, you must uninstall that first.">(NOT NEWERVERSIONDETECTED)
> AND (NOT OLDERVERSIONDETECTED)</Condition>
>
> This seems to have no effect however, both older and newer versions of
> the package (as defined by var.ProductVersion) are allowed to install
> on top of the existing version (multiple entries then appear in
> Add/Remove Programs). I also played around with different things in
> the InstallExecuteSequence and InstallUISequence sections, for example
>
> <FindRelatedProducts Before='LaunchConditions' />
>
> But this doesn't seem to do anything either. When I log the installs
> I don't see NEWERVERSIONDETECTED or OLDERVERSIONDETECTED being set to
> anything.
>
> What am I missing? Or, conversely, is there a simpler way to do what
> I am trying to do?
>
> Thanks!
>
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer Community
> Take advantage of Verizon's best-in-class app development support
> A streamlined, 14 day to market process makes app distribution fast and easy
> Join now and get one step closer to millions of Verizon customers
> http://p.sf.net/sfu/verizon-dev2dev
> _______________________________________________
> WiX-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users