Verbose log file should show you the states of everything.

-----Original Message-----
From: Chris Ridd [mailto:chrisr...@mac.com] 
Sent: Thursday, February 05, 2009 09:51
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Control conditional on installed components

I've been bashing my head against this all day today :-(

We optionally install some shortcuts to things written in Java, and I  
want to warn in the ExitDialog if those shortcuts were wanted but  
could not be installed because Java's not there. To add complexity, we  
allow the user to use different JREs and JDKs. So we have something  
like this in the wxs:

<Component Id="app_jre15"...>
   <Condition>JRE15HOME</Condition>
   <Shortcut...>
   <Registry KeyPath="yes" Root="HKLM" Key="Software\foo\app_jre15"/>
</Component>
<Component Id="app_jdk15"...>
   <Condition>JDK15HOME AND NOT JRE15HOME</Condition>
   <Shortcut...>
   <Registry KeyPath="yes" Root="HKLM" Key="Software\foo\app_jdk15"/>
</Component>
[... and similar for JRE16HOME and JDK16HOME...]

The Registry keys are there to disambiguate the identical-looking  
components. I added another component:

<Component Id="app_nojava"...>
   <Condition>NOT JDK15HOME AND NOT JRE15HOME</Condition>
   <Registry KeyPath="yes" Root="HKLM" Key="Software\foo\app_nojava"/>
</Component>

Theorizing that if JDK15HOME and JRE15HOME are not set (they're  
properties set by searching the registry for particular JavaSoft keys)  
the app_nojava component is registered as installed.

So my custom ExitDialog tries to warn if it sees the app_nojava  
component is installed. I'm basically using a tweaked WixUI_Mondo BTW:

<Control Type="Text"... Text="WARNING" Hidden="yes">
   <Condition Action="show">?app_nojava = 3</Condition>
</Control>

On some machines this works. On others though it consistently does  
not. On all machines the correct shortcuts get installed, or not at  
all if Java's completely removed.

What's wrong? Why does MSI not remember the install state of  
app_nojava in the ExitDialog?

Cheers,

Chris

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to