Is it possible to share installed programs between Windows 7 and Windows 8?

I am planning to dual boot Windows 7, Windows 8 and Ubuntu, and the problem is that i may be running a little low on disk space.

So the question is:

Can I share installed programs (including configurations, e.g. AppData folders and registry entries) between Windows 7 and Windows 8, to save some disk space and share settings easily?

For example, I could share Visual Studio 2010 which uses a lot of disk space between the two, or firefox etc.


Solution 1:

Personally, I was able to successfully share my Steam games on my dual-boot system. It saved a lot of disk space. You can probably share the Program Files data between the two systems by installing the software twice in the same location, but it's a different story with settings and registry entries.

Also, using portable versions of applications will, in most cases, allow you to save space. A large portion of free/open source applications have portable versions. A good resource to start with is The Portable Freeware Collection website.

Solution 2:

You should install them properly on both systems, but in the same location. Then it should work on both systems as programs (usually) don't do anything to their installation location once they're installed (hopefully by now).

Settings are a little different and it depends on where the application stores its settings and you will definitely have different user profiles on both systems. There are a few places that are common, depending on the application:

  • AppData\Roaming and AppData\Local (those are the roaming and local parts, respectively). This is quite easy as you can just use junction points or symlinks to merge the respective directories, e.g. let C:\Users\Me\AppData\Roaming\Microsoft\VisualStudio be just a link to D:\Users\Me\AppData\Roaming\Microsoft\VisualStudio. Most applications really don't care whether they access a location through a junction or symlink, so this is fairly reliable.
  • A .foobar directory in your profile. This is mostly used by stupidly-ported Unix software and sadly still rampant. But above method works as well. If it's a single configuration file instead you will have to create a file symlink, though.
  • The registry. This is sadly impossible to solve since Windows 8 won't like the Windows 7 user registry hive and vice-versa. You could probably hack together some manual synchronisation with PowerShell or reg.exe and do that every time you switch OSes. But it won't be pretty.