Is AppData now the 'correct' place to install user-specific apps (which modify their own data)?

Not really.

The directory that serves as a common repository for application-specific data for the current roaming user.

AppData is, surprisingly, for application data, not for installation (Click Once/Silverlight applications aside). You can, and should still install into Program Files, just don't expect to write into that folder.

You can install software into AppData if you want it to follow a user about in an Active Directory environment, which happens if you put it in AppData\Roaming (the SpecialFolder.ApplicationData location).

You can also install into AppData if you want the software to be available to just the user that installs it. This can be useful if, for example, you have multiple users on the same machine, who all want to run different versions of the software in complete isolation.

If you want settings to only apply on the local machine then you use AppData\Local, which is SpecialFolders.LocalApplicationData - this will make AD administrators very happy as the roaming profile size won't suddenly jump up 50Mb or whatever the size of your software is.

If you wanted to create settings which apply to all users then you're looking at SpecialFolders.CommonApplicationData

You should remember never to rely on the actual name of the directory - localisation issues mean this can change and the location does change with OS versions two. You should be using the special folder enumeration in your software, or the equivalent in your installer.

Could you not install into Program Files, but use AppData as it's supposed to be used, and store your database in there?


Windows 7 added the FOLDERID_UserProgramFiles known folder and by default this maps to %LOCALAPPDATA%\Programs. This is used by MSI when ALLUSERS=2 & MSIINSTALLPERUSER=1.

On Vista and earlier there is no canonical per-user application folder but just using %LOCALAPPDATA% is pretty common. Sadly MSI will just use %ProgramFiles% on these systems.


It's 2019, and I just installed Visual Studio Code (a Microsoft product) in the default folder of

%userprofile%\AppData\Local\Programs\Microsoft VS Code

This is probably for getting around the requirement to have an administrator or UAC prompt authorise the installation