I would recommend updating the conditions to
 
64-bit: <![CDATA[Installed OR ((JRE64 AND JRE64 >= "1.6") OR (JRE32 AND JRE32 
>= "1.6"))]]>
32-bit: <![CDATA[Installed OR ((JRE64 AND JRE64 >= "1.6") AND (NOT JRE32) OR 
JRE32 < "1.6"))]]>

This is clearer and separates out the maintenance part of the condition from 
the precondition part.
 
> From: haw...@anx.com
> To: wix-users@lists.sourceforge.net
> Date: Wed, 19 Jun 2013 10:03:12 -0400
> Subject: Re: [WiX-users] Java Program Installer
> 
> I think Jacob makes a good point, at some point in time, I will learn
> how to use Burn and create a combined installer. This addresses issues I
> had not set out to address (reduce over all installer size by using CAB
> files to store common jars), and reduces the number of installers to one,
> that just does the right thing.
> 
> I can't tell how many times I have searched email list archives and find
> someone who is having a similar problem as I, but never find a
> resolution to the problem, so for all intensive purposes, I will state
> the solution to my initial problem, since it was initially about WiX
> conditionals.
> 
> Here is the code I wound up with:
> 
>     <Property Id="JRE64">
>       <RegistrySearch
>           Id="JRE64_KEY"
>           Root="HKLM"
>           Key="SOFTWARE\JavaSoft\Java Runtime Environment"
>           Name="CurrentVersion"
>           Type="raw"
>         Win64="yes"
>         />
>     </Property>
>     <Property Id="JRE32">
>       <RegistrySearch
>           Id="JRE32_KEY"
>           Root="HKLM"
>           Key="SOFTWARE\JavaSoft\Java Runtime Environment"
>           Name="CurrentVersion"
>           Type="raw"
>         Win64="no"
>         />
>     </Property>
> 
>     <Condition Message="Java not installed  Please install JRE 1.6 or later.">
>       <![CDATA[((Installed OR JRE64) AND JRE64 >= "1.6") OR ((Installed OR 
> JRE32) AND JRE32 >= "1.6")]]>
>     </Condition>
> 
> I know I stated Java 7 being the minimum version before, but really, it
> is Java 6. The message works. This message pops up if there is no Java
> installed, or if a 32bit Java and a 64bit Java is installed, but
> both are earlier versions than 1.6. It will not flag the message, and
> proceed with install if one of them are v. 1.6 or greater. It still
> installs if one of the installed JVM's meet the version requirements.
> 
> I then set up a Fragment32.wxs and Fragment64.wxs file containing all
> the components for a 32bit install and a 64bit install (all with unique
> Id's).
> 
> In the main file, I list the feature sets for both installs, with these
> conditions set within the corresponding topmost feature set:
> 
> For a 64bit install:
> 
>     <Feature Id="Complete64" Title="JavaProg" Description="The complete 
> package."
>              Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR64">
>       <Condition Level="0">
>       <![CDATA[((Installed OR NOT JRE64) OR JRE64 < "1.6") AND ((Installed OR 
> JRE32) AND JRE32 >= "1.6")]]>
>       </Condition>
>       .....
>     </Feature>
> 
> and this for a 32bit install:
> 
>     <Feature Id="Complete32" Title="JavaProg" Description="The complete 
> package."
>              Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR32">
>       <Condition Level="0">
>       <![CDATA[((Installed OR JRE64) AND JRE64 >= "1.6") AND ((Installed OR 
> NOT JRE32) OR JRE32 < "1.6")]]>
>       </Condition>
>       ......
>     </Feature>
> 
> This works, which is just "good enough" today. I will search out how to
> use Burn for the future.
> 
> 
> Daniel Madill writes:
> 
> > Because I started the installer before burn was available. Nor are the 
> > 32-bit installers identical because some 32-bit third-party products we 
> > interface with do not work on 64-bit platforms due to device drivers (which 
> > must be 64-bit). We are also not using Java. In our case it's native code. 
> > Our installer checks the O/S so it is not possible to use our 32-bit 
> > installer on a 64-bit platform so there is no potential for conflict there. 
> > External CABs are a nuisance for web downloads. Burn would resolve that 
> > problem, but we started in pre-burn days and haven't upgraded yet because 
> > it hasn't been necessary. At some point we will likely investigate using 
> > burn.
> >
> > Daniel Madill
> >
> > -----Original Message-----
> > From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] 
> > Sent: June-18-13 3:19 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Java Program Installer
> >
> > But why would you make a 64bit installer that installs both, and a second 
> > 32 bit installer.  I fail to see the benefit of that vs a pure 32 bit 
> > installer and a pure 64 bit installer, and then utilize burn to install 
> > them when needed.  If the files are in fact identical, you can go one step 
> > further and use external CABS so you don't even have duplicate Jar's for 
> > each MSI.
> >
> > If you have it layed out where the 64 bit MSI installs 32 bit components, 
> > what happens if the user then installs an upgraded 32 bit MSI of yours?
> >
> >
> > -----Original Message-----
> > From: Daniel Madill [mailto:dan.mad...@quanser.com] 
> > Sent: Tuesday, June 18, 2013 1:49 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Java Program Installer
> >
> > I use a WiX preprocessor variable for the Win64 attribute value so I can 
> > set it in one spot when using the same source for generating a 32-bit and a 
> > 64-bit MSI. That makes it easy e.g. Win64=$(var.Win64).
> >
> > Daniel Madill
> >
> > -----Original Message-----
> > From: Tim Hawes [mailto:haw...@anx.com] 
> > Sent: June-18-13 2:46 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Java Program Installer
> >
> >
> > Wesley Manning writes:
> >
> >> Curiosity got better of me.  It seems that for a 64bit MSI Win64=yes is 
> >> assumed so you only need to set the Win64 attribute (= no) for the 32bit 
> >> components.
> >>
> >
> > Apparently, it is NOT assumed for <RegistrySearch/>. I've spent half the
> > day spinning my wheels on that one today.
> >
> >
> >> -----Original Message-----
> >> From: Daniel Madill [mailto:dan.mad...@quanser.com] 
> >> Sent: June-18-13 3:23 PM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] Java Program Installer
> >>
> >> I install 32-bit components using a 64-bit MSI all the time in order to 
> >> have a single MSI that provides support for our APIs to both 32-bit and 
> >> 64-bit applications running on a 64-bit O/S. It works just fine. I use WiX 
> >> preprocessor directives to build a pure 32-bit MSI for 32-bit platforms 
> >> and a mixed 64-bit MSI for 64-bit platforms from the same WiX source.
> >>
> >> Daniel Madill
> >>
> >> -----Original Message-----
> >> From: Wesley Manning [mailto:wmann...@dynagen.ca] 
> >> Sent: June-18-13 2:17 PM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] Java Program Installer
> >>
> >> AFAIK you can have 64bit MSI install 32bit components.  But a 32bit MSI 
> >> can't install 64bit components.  There is a 64bit attribute on the 
> >> component to say if its 32bit or 64bit...  Just from memory, never had to 
> >> do this.
> >>
> >> -----Original Message-----
> >> From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] 
> >> Sent: June-18-13 12:48 PM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] Java Program Installer
> >>
> >> As far as I am aware, it is not possible/supported to install 32 bit 
> >> components in a 64 bit MSI.  There are unsupported hacks out there, but 
> >> they would fail ICE validation and wouldn't be Logo certified.
> >>
> >> If you already have a 64 bit and 32bit MSI, and the 64 bit MSI installs 
> >> only 64bit components, then it would be near trivial to setup a Bundle to 
> >> do the registry searches you previously wanted to do in a MSI and 
> >> conditionally install either the 32 bit or 64 bit MSI on a 64 bit machine. 
> >>  In addition, this same bundle can be deployed to a 32 bit machine.
> >>
> >> -----Original Message-----
> >> From: Tim Hawes [mailto:haw...@anx.com] 
> >> Sent: Tuesday, June 18, 2013 9:58 AM
> >> To: General discussion for Windows Installer XML toolset.
> >> Subject: Re: [WiX-users] Java Program Installer
> >>
> >> My understanding is that a 64bit installer can install 32bit binaries? I 
> >> am using this just for 64bit systems. I am already building a separate 
> >> 32bit installer for 32bit systems (which only needs to test for JRE 
> >> version). The problem I describe below is a 64bit installer which must 
> >> determine which JRE is installed on the system, since it is possible to 
> >> install both a 32bit JRE and a 64bit JRE. If I need separate installer for 
> >> this, then forget it. It will just have to fail if it doesn't find the 
> >> 64bit JRE.
> >>
> >>
> >>
> >>
> >> Hoover, Jacob writes:
> >>
> >>> You need 2 MSI packages, one for the 64 bit components and one for the 
> >>> x86 components. You can utilize burn to do the bitness of the OS test and 
> >>> then decide which installer to invoke.
> >>>
> >>> -----Original Message-----
> >>> From: Tim Hawes [mailto:haw...@anx.com]
> >>> Sent: Tuesday, June 18, 2013 8:38 AM
> >>> To: General discussion for Windows Installer XML toolset.
> >>> Subject: [WiX-users] Java Program Installer
> >>>
> >>> I have a product that will use a 64bit installer. It uses an exe wrapper 
> >>> for the jar files so that the programs can be entered as Windows services 
> >>> and the config programs can run from the Start menu. The wrapper requires 
> >>> different binaries for the type of JVM installed, 32bit executables for 
> >>> runnning the jars under a 32bit JVM, and 64bit executables for running 
> >>> the same jars under a 64bit JVM.
> >>>
> >>> The requirements for the 64bit installer is to detect which JVM is 
> >>> installed. If it finds the 64bit JRE, it stops there and installs the 
> >>> 64bit exe's (and the associated jar files) under ProgramFiles64Folder, 
> >>> upon failing that, it should search for the 32bit JRE, and then install 
> >>> the 32bit exe's (and associated jar files) under ProgramFilesFolder.
> >>>
> >>> Here is the WiX snippet I have:
> >>>
> >>>     <Property Id="JRE64">
> >>>       <RegistrySearch Id="J64REVER" Type="raw"
> >>>         Root="HKLM" Key="Software\JavaSoft\Java Runtime 
> >>>         Environment\CurrentVersion" Name="JavaVersion" />
> >>>     </Property>
> >>>
> >>>     <Property Id="JRE32">
> >>>       <RegistrySearch Id="J32REVER" Type="raw"
> >>>         Root="HKLM" Key="Wow6432Node\JavaSoft\Java Runtime 
> >>>         Environment\CurrentVersion" Name="JavaVersion" />
> >>>     </Property>
> >>>
> >>>     <Condition Message="This application requires Java Version 7 
> >>>     or higher">
> >>>       <![CDATA[ (Installed OR JRE32 OR JRE64) AND JRE32 < "1.7" 
> >>>       AND JRE64 < "1.7"  ]]>
> >>>     </Condition>
> >>>
> >>> I don't think my condition is right. What I want it to say, in pseudo 
> >>> code, is:
> >>>  
> >>> IF (
> >>>       (NOT JRE32 OR JRE32 < "1.7")
> >>>      AND
> >>>       (NOT JRE64 OR JRE64 < "1.7")
> >>>    )
> >>> THEN stop install with the message.
> >>>
> >>> Since it is possible to have both an 32bit JRE and 64bit JRE installed on 
> >>> a 64bit system, it is important to check for both, but default to the 
> >>> 64bit JRE if it is up-to-date and available.
> >>>
> >>> Thanks!
> >>>
> >>> ----------------------------------------------------------------------
> >>> -------- This SF.net email is sponsored by Windows:
> >>>
> >>> Build for Windows Store.
> >>>
> >>> http://p.sf.net/sfu/windows-dev2dev
> >>> _______________________________________________
> >>> WiX-users mailing list
> >>> WiX-users@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>>
> >>> ----------------------------------------------------------------------
> >>> -------- This SF.net email is sponsored by Windows:
> >>>
> >>> Build for Windows Store.
> >>>
> >>> http://p.sf.net/sfu/windows-dev2dev
> >>> _______________________________________________
> >>> WiX-users mailing list
> >>> WiX-users@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> This SF.net email is sponsored by Windows:
> >>
> >> Build for Windows Store.
> >>
> >> http://p.sf.net/sfu/windows-dev2dev
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >> ------------------------------------------------------------------------------
> >> This SF.net email is sponsored by Windows:
> >>
> >> Build for Windows Store.
> >>
> >> http://p.sf.net/sfu/windows-dev2dev
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> This SF.net email is sponsored by Windows:
> >>
> >> Build for Windows Store.
> >>
> >> http://p.sf.net/sfu/windows-dev2dev
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >> ------------------------------------------------------------------------------
> >> This SF.net email is sponsored by Windows:
> >>
> >> Build for Windows Store.
> >>
> >> http://p.sf.net/sfu/windows-dev2dev
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >>
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> This SF.net email is sponsored by Windows:
> >>
> >> Build for Windows Store.
> >>
> >> http://p.sf.net/sfu/windows-dev2dev
> >> _______________________________________________
> >> WiX-users mailing list
> >> WiX-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> >
> > ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> > ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> > ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> > ------------------------------------------------------------------------------
> > This SF.net email is sponsored by Windows:
> >
> > Build for Windows Store.
> >
> > http://p.sf.net/sfu/windows-dev2dev
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> 
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
> 
> Build for Windows Store.
> 
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
                                          
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to