Most portable applications do not leave files or settings on the host computer or modify the existing system and its configuration. The application may not write to the
Windows registry or store its configuration files (such as an
INI file) in the user's
profile, but today, many portables do; many, however, still store their configuration files in the portable directory. Another possibility, since
file paths will often differ on changing computers due to variation in
drive letter assignments, is that portable applications may store them in a
relative format. While some applications have options to support this behavior, many programs are not designed to do this. A common technique for such programs is the
use of a launcher program to copy necessary settings and files to the host computer when the application starts and move them back to the application's directory when it closes. An alternative strategy for achieving application portability within Windows, without requiring application source code changes, is
application virtualization: An application is "sequenced" or "packaged" against a runtime layer that transparently intercepts its file system and registry calls, then redirects these to other persistent storage without the application's knowledge. This approach leaves the application itself unchanged, yet portable. The same approach is used for individual application components:
run-time libraries,
COM components or
ActiveX, not only for the entire application. As a result, when individual components are ported in such manner they are able to be: integrated into original portable applications, repeatedly instantiated (virtually installed) with different configurations/settings on the same
operating system (OS) without mutual conflicts. As the ported components do not affect the OS-protected related entities (registry and files), the components will not require administrative privileges for installation and management. Microsoft saw the need for an application-specific registry for its Windows operating system as far back as 2005. It eventually incorporated some of this technology, using the techniques mentioned above, via its Application Compatibility Database using its Detours code library, into Windows XP. It did not make any of this technology available via its system
APIs. == Portability on Unix-like systems ==