Pass command line variables into WiXx based Windows Installer MSI

15,933

You just define the property on the command line when running msiexec:

msiexec /i product.msi APPLICATIONFOLDER="C:\Program Files\Company\Product\"

The files will be installed into "C:\Program Files\Company\Product" directory.

I'd advice using absolute path here. A relative path may lead to unexpected results.

Share:
15,933
Jeroen Huinink
Author by

Jeroen Huinink

I work at a software company in the Netherlands. We are developing applications in a wide variety of languages, including, C#, Java and Javascript.

Updated on June 05, 2022

Comments

  • Jeroen Huinink
    Jeroen Huinink about 2 years

    I am building an MSI installer with WiX and I am using the WixUI_Advanced. The definition of my ApplicationFolder looks like this, following the advice in another SO answer (WiX tricks and tips).

      <Directory Id="TARGETDIR" Name="SourceDir">
         <Directory Id="$(var.PlatformProgramFilesFolder)">
            <Directory Id="APPLICATIONFOLDER" Name="$(var.InstallName)">
    

    I now want to give the user the option to do a silent install and pass the ApplicationFolder name on the path, either relative to the appropriate program files folder or absolute.

    I know that I can pass public property values on the command-line of msiexec, but how do I use that as value for ApplicationFolder and how do I set this up for absolute vs relative paths.