views:

1448

answers:

1

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?

+8  A: 

Use Directory element with Id set to AppDataFolder:

<Directory Id="AppDataFolder" Name="AppDataFolder">
  <Directory Id="MyAppFolder" Name="My">
    <Component Id="MyComponent" Guid="cc509cb7-c1a1-46cf-8c62-7cbb0017783c">
      <File Id="test1.txt" Name="test1.txt" KeyPath="yes" Source="Files\test1.txt" />
    </Component>
  </Directory>
</Directory>

This will result in test1.txt being installed to C:\Users\username\AppData\Roaming\My on Vista 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.

Pavel Chuchuva
Thanks, and thanks for the link, very useful
Davy8