View Full Version : Vista and virtualization... so where am I suppsed to put this file then?

03-10-2009, 02:59 PM

Our software uses MS Access as a database backend, this is user data, no issue here. However, over the years the software has changed and in order to upgrade the databases themselves to be compatible with later versions, the current version always installs a special helper mdb file with some objects and queries in it that are updated or new in later versions.

In other words we have a static MDB file with information to update older DBs, it's not really user data but just a static program file, something that would normally be in program files. It just happens to be an MDB.

Unfortunately, during this process of upgrading the DB, there seems there is some sort of write attempt on this file. (I'm not one of the programmers, they said Access pretty much writes something no matter what you do). This leads to this file being virtualized on a Vista machine. As such, when another version is released, this mdb file does not get replaced as it doesn't overwrite the virtualized copy. Therefore an obsolete version remains.

I know the issue of virtualization and why it exists, done plenty of research, that's not my question. I also know a workaround for now (to change permissions on the install folder). My question is for the future when we try to make this thing work the proper right way. Where the heck is a file like this actually supposed to go? I've read so much about how Vista more strongly enforces standards, yet nowhere that tells you what these standards are!

I figure CommonAppDataFolder, but it appears that this can get virtualized as well. I can use it and then set permissions on it instead, but am I not still circumventing standards by doing this and is there really any advantage here?

Thanks, any help would be appreciated