I want to create an installer EXE with some specific properties:
- it should be a single exe file
- it should be robust (i.e. the technique should be known to work well on any Windows system)
- it should create only a single file (a .scn screensaver file) in %systemroot%
- it should add the option to uninstall that particular file in "Control Panel -> Add or Remove Programs" but without creating any new entry
C:\Program Files
or copying an uninstaller.exe somewhere.
I've seen installers that work like that - so how to do this?
Try Advanced Installer, I think it can do all that you ask. I use it for slightly more complex installers but the free version is easy to use and powerful.
There can be an issue with MSI files, older PCs don't have the latest Windows Installer, 3.1, so you need to install that or prompt the user to, first! Have you looked into using IExpress if you just want to copy a file across?
NSIS is the way to go, very simple to learn, just write a simple file specifying which files you want to install over where. You can also add QuickLaunch options and so on. Then run the NSIS compiler and you get the exe.
I'm using Actual Installer. Try it!
Both NSIS and Inno Setup will cope with all the tasks specified. Inno Setup uses a Pascal-like language for its scripts, NSIS uses its own script language.
I've heard good things about the free installer Innosetup, and the website says it can create single EXE installs.
If you want to use standard deployment methods with your installer you probably should stay away from NSIS. See http://unattended.sourceforge.net/installers.php for an overview.