Spent much of the day figuring out something that will be portable to all our other Windows application projects, but which I'm doing for the first time with this IMT release: building an installer which can install the app both in "normal" mode and in "portable application" mode.
In both cases, the installation is basically the same; the difference is in how the program is run.
The "portable" install is designed to be used on a thumb drive or other removable drive, and its main feature is that settings, window positions, sizes etc. are all saved in the program folder, so that they travel with the drive. In a "normal" install, these settings are saved in the user's Application Data
folder. The "portable" option is designed to be compatible with the PortableApps standard 0.9.8 (see the PortableApps website for more information). If you install the program to the PortableApps folder on a thumb drive, the PortableApps menu will automatically find it. However, regardless of which install type you chose when installing the program, you can still run the program in either mode.
One difficulty lies in the fact that a "normal" install ought to be registered for uninstall, and gets its uninstall application dropped automatically into its program folder; if this happens for the "portable" install, then the PortableApps menu system finds the uninstaller and puts it on the menu as if it were a regular application. I solved this by running a batch file to move the uninstaller and its data file, at the end of the process, to another location.
Other issues involved ensuring that state info files get removed when uninstalling from a thumb drive, and making sure that icons and shortcuts work in either case.