Starting from mAirList 3.0.11, the compatibility with Vista and Windows 7 has been improved by changing the place mAirList stores its configuration data in.

The Problem

Previous version of mAirList stored all configuration files in the “config” subfolder of the mAirList program directory, that is, usually in the folder C:\Program Files\mAirList 3.0\config. The same applied to some other files like the default local mAirListDB file database.db, the license file license.lic and the standard desktop template standard.mlt, which were stored in the same folder as the main executable, that is, in C:\Program Files\mAirList 3.0.

Although discouraged by Microsoft, this has worked pretty well on most systems, however, due to the new user management features of Vista and Windows 7, things have become a little more complicated. In particular, when the user does not have any write access in the Program Files folder (because he is not an administrator), he will not be able save the configuration. Windows detects this sort of problem, and it “solves” it by using a technique called virtualization: The files are “redirected” to a writable directory inside the user’s profile folder, namely C:\Users\<username>\AppData\Local\VirtualStore\Program Files\mAirList 3.0. This has confused a lot of people (including myself), and it makes it even harder to locate your config files for manual editing, or save a standard.mlt file.

The Solution

The solution is actually pretty easy: mAirList will store its configuration (and database files and standard files) into a place that is intended for this purpose, the common application data folder:

C:\ProgramData\mAirList\3.0 (Vista and Windows 7) or
C:\Documents and Settings\All Users\AppData\mAirList\3.0 (Windows 2000 and XP)

Why haven’t I done so in the first place? Because one of the key features of mAirList is that it doesn’t need to be “installed” but can be just copied into any folder, even on a USB stick to take with you. In that case, it’s not so good having the configuration stored in some system profile folder ;) And actually, we need a trick to keep this sort of installation working…

Zip and Legacy Installations

If you didn’t use the installer to setup mAirList but downloaded the zip archive, you extracted it to some folder of your choice, and the configuration files will be in that folder, following the “old style” installation scheme outlined about. That is perfectly ok, because unlike Program Files, the folder you picked for extraction will of course be writable by you. So there is no need to change the way the config is stored in this case.

It’s not feasible to offer two different mAirList.exe files for download (one that uses the program folder, one that uses the common application data folder). Instead, we need a “dynamic” way to decide where the configuration is stored. And here is how it works:

  • When mAirList is started, it checks if there is a “config” folder in the same folder as the mAirList.exe file.
  • If there is, it will assume that this is an “old style” installation, and keep looking for config and standard files in the program directory.
  • If there is no such folder, mAirList will assume that this is a “new style” installation, and look for configuration files in the common application data folder mentioned above.

The installer has been modified so it will not create a config folder inside the program folder but instead prepare the common application folder as needed; the zip download contains an empty config folder, so when you unzip and run that version, it will be an “old style” installation straight away.

Migrating Old Installations

If you installed mAirList 3.0 through the installer, the config directory is still in the program directory (or even in the virtualized store). Even when you upgrade to version 3.0.11 or newer, the config directory will not be touched, so your installation will continue to be an “old style” one. But it’s possible to convert your installation to a “new style” one following these steps:

  1. Make sure that you have at least mAirList 3.0.11 installed.
  2. Locate your current config directory, in particular, check the following places:
    • C:\Users\<username>\AppData\Local\VirtualStore\Program Files\mAirList 3.0
    • C:\Users\<username>\AppData\Local\VirtualStore\Program Files\mAirList
    • C:\Program Files\mAirList 3.0
    • C:\Program Files\mAirList

    Check the date and time of the current configuration files to confirm that you found the correct config folder. (When virtualization is active, there may be a config folder in Program Files which is not used at all.)

  3. Move that config folder to a save place. Also move all of the following files, if existing, to that safe place: database.db, license.lic, defaultlicense.lic, standard.mlt, standard.mle, standard.mlc.
  4. If your config folder was located in the virtual store, also delete the config folder from the C:\Program Files\mAirList (3.0) directory.
  5. Start mAirList. It will complain that there is no license file and open License Manager. Close it again.
  6. At the same time, mAirList has created the “new style” configuration directory for you:
    • C:\ProgramData\mAirList\3.0 (Vista and Windows 7) or
    • C:\Documents and Settings\All Users\AppData\mAirList\3.0 (Windows 2000 and XP)
  7. Locate that folder in Windows Explorer, and copy the config folder and any other file you backed up into it.
  8. If you moved your database.db file during this process, open mAirListConfig, go to the Databases page and edit your database connection, using the Button Open existing database file to point mAirList to the new location of your database file.

That’s it :)