I think where you're getting confused is that there are more than one type of "variable" in WiX. Firstly, there are preprocessor variables and condition, which are referenced like this:
$(var.VariableName) !(var.LateBoundVariableName) $(env.EnvironmentVariableName) !(loc.StringID) These are available at build time and are used in things like string paths and to conditionally include fragments of code based on your build configurations. (Check out this link: http://wix.sourceforge.net/manual-wix3/preprocessor.htm) Then there are the MSI properties and conditions, which use a different syntax, because it's defined by MSI and not WiX. These are avaiable at runtime and are used to perform logic in your install - conditionally performing an action based on the environment or feature selection, getting information, controlling your installation directories and stuff like that. (Check out this link: http://msdn.microsoft.com/en-us/library/windows/desktop/aa368012(v=vs.85).aspx ) What you have there is an MSI condition, which looks like it's based on MainFeature being installed. To break this down: (&MainFeature = 3) &FeatureName gets the requested state of the feature. &MainFeature = 3 means "if MainFeature is selected for installation, return true". AND NOT Pretty standard boolean logic - if the left hand side is true, but the right hand side is false, this will return true. (!MainFeature = 3)] !FeatureName gets the *current state* of the feature, rather than the requested state. This means "if MainFeature is *currently installed* for installation, return true". Put it all together, and what you get is this: "If MainFeature is selected for installation, and it's NOT currently installed, return true". Hope that helps On 29 May 2013 09:46, Benjamin Mayrargue <benja...@vapolia.fr> wrote: > Hi all, > i have a noob question. > > In this snippet there is a & and a ! before the variable MainFeature. > what does that mean ? > > <Condition><![CDATA[(&MainFeature = 3) AND NOT (!MainFeature = > 3)]]></Condition> > > In the wix chm, i found the list of "Wix built-in variables. > But i'm unable to reference them, either in the bundle, or in my managed > bootstrapper. What is the correct way to make them available ? (i'm using > only a bundle). > > thks :) > > ------------------------------------------------------------------------------ > Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET > Get 100% visibility into your production application - at no cost. > Code-level diagnostics for performance bottlenecks with <2% overhead > Download for free and get started troubleshooting in minutes. > http://p.sf.net/sfu/appdyn_d2d_ap1 > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET Get 100% visibility into your production application - at no cost. Code-level diagnostics for performance bottlenecks with <2% overhead Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap1 _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users