Search code examples
windowsregistryinstallationportable-applications

How exactly do Windows portable applications work?


Portable applications can be run from USB-drives and all and are thus very convenient, but unfortunately they are slow (as a USB drive is usually slower).

How exactly does the installation of a portable app differ from that of a normal app?

I know they do not create registries and all, but then how do they achieve the same thing as other, 'normal' apps?


Solution

  • Any application that stores all required information in a self-contained way can be made "portable".

    For exmaple, eclipse doesn't require installation and keeps all preferences within the workspace, so it could be considered portable.

    An application which any of the following isn't immediately portable:

    • Uses the registry
    • Uses the user's home directory ie: "C:\Users" or "C:\Documents and Settings"
    • Requires installation of certain files to hard-coded locations

    In order to make these applications portable they can be processed or run within a mini-VM (like ThinApp) so that calls that registry calls and file accesses are modified to refer to locations within the USB.