Search code examples
wixenvironment

Get an environment variable into a WiX property


Is there a way to get an environment variable into a WiX property?

I'm trying to get the USERPROFILE with:

Property Id="UserFolder"  Value="$(env.USERPROFILE)\EdwardsApp\MyFolder"

But this only picks up the USERPROFILE of the build machine where the installer is built.

I want it to use the USERPROFILE of the machine where the app is being installed.


Solution

  • You can make use of Environment variables during installation but this requires using a custom action. You will need to set the UserFolder property with a Type 51 Custom Action as opposed to setting the property during the build. The [%ENVVARNAME] format is used to make use of an environment variable, but the name of the environment variable is case-sensitive.

    A WiX example of a custom action that sets a property:

    <CustomAction Id="SetUserFolder" Property="UserFolder" Value="[%USERPROFILE]EdwardsApp\MyFolder" />
    

    You can read more on Custom Actions in WiX here:

    http://blogs.technet.com/b/alexshev/archive/2008/02/21/from-msi-to-wix-part-5-custom-actions.aspx