This document describes changes in SharpSetup 1.4 conpared to previous version (1.2).
New features
SharpSetup 1.4 introduces major enhancements to its bootstrapper.
Dynamic Library
IntermediateBootstrapper project allows you to execute custom C++ code prior to main GUI which is necessary when .NET Framework or another prerequisite of main GUI is not installed. In version 1.2 this project produced .exe file which was executed after unpacking files. Version 1.4 keeps the main concept but changes format from .exe file to .dll file. This change allows for better integration between Bootstrapper and IntermediateBootstrapper (eg. reporting status or progress).
Bootstrapper Library
To ease common tasks that have to be implemented in IntermediateBootstapper's C++ code new library is provided with SharpSetup 1.4. It allows you to query registry, check if specific product is installed, set progress, display message boxes, write to installer log, etc. As an example functions that check for and install .NET Framework and Windows Installer have been implemented.
File providers
File providers are classes that take care for locating files that are needed for prerequisite installation. SharpSetup 1.4 comes with 3 providers:
- local - locates a file availables locally relative to installer executable or inside setup package,
- cd - locates a file available on optical drive,
- download - downloads a file from configured HTTP URL
Configuration file format
Format of the configuration file has been changed from line based text file (mainconfig.txt) to XML file (configuration.sscf). New file format has clearer structure and allows for IntelliSense to give hints about specific configuration tags. It also allows preliminary checking of configuration correctness in Visual Studio even before you start to build the solution.
Bug fixes
SharpSetup 1.4 fixes many bugs that existed in version 1.2. This includes both issues reported by users and ones detected internally.
Improved DPI awareness (#49)
Previous versions of SharpSetup had problems when installers were run on devices with non standard DPI settings (images were not scalled well, controls were not properly resized in certain cases). These problems were fixed in version 1.4.
Improved error reporting
After releasing version 1.2 of SharpSetup several problems have been reported that related to missing third party components such as C++ support in Visual Studio or lack of VS integration component in Windows Installer XML. This resulted in cryptic error messages. Version 1.4 makes these messages much clearer.
Other bugfixes
List of other bug fixes:
- Do not ask when closing FatalErrorStep (#38)
- Allow installation on non-local drives (#39)
- Fix resizing SetupWizard (#43)
- MSI property passthrough (#44)
- Do not modify non-SharpSetup solution files (#47)
- Allow adding files to Assembler project not as link (#50))
- Check action conditions on costing (#52)
- Generate upgrade code GUID (#53)
- TFS build problems (#60)
- Some actions should not be executed on opening package (#63)