Search code examples
wixinstallationspecial-folders

What is the WiX equivilent of Environment.SpecialFolder.ApplicationData from .NET?


I need to install a file into the Environment.SpecialFolder.ApplicationData folder, which differs between XP and Vista. Is there a built in way to reference the correct folder in WiX or will I have to use conditional checks for OS and do it manually?

If I have to do the latter, how do I reference the current windows user's directory in Vista?


Solution

  • Use Directory element with Id set to AppDataFolder:

    <Directory Id="AppDataFolder">
      <Directory Id="MyAppFolder" Name="My">
        <Component Id="MyComponent">
          <File Source="Files\test1.txt" />
        </Component>
      </Directory>
    </Directory>
    

    This will result in test1.txt being installed to C:\Users\username\AppData\Roaming\My on Windows 7 and to C:\Documents and Settings\username\Application Data\My on Windows XP.

    MSDN has a list of properties that you can use to reference special folders.