Click or drag to resize
Upgrade 1.2 to 1.4

This document describes upgrade process between SharpSetup 1.2 and 1.4.

Automatic upgrade steps

  1. Event names have changed in SharpSetup 1.4 to follow .NET naming conventions more closely. In particular the following name changes occured in StepBase:

    In MsiConnection the following name changes occurred:

    In PrerequisiteList the following name changes occurred:

    Also InstallationMode enumeration has been moved from SharpSetup.UI.Controls namespace to SharpSetup.Base namespace.

  2. Configuration file changed its format from text file to XML file. During conversion process new file (configuration.sscf) is created based on old file contents (mainconfig.txt). The mainconfig.txt file is deleted along with reference to it in IntermediateBootstrapper.rc file.

  3. In previous versions Upgrade Code GUID was always the same and set to 83348404-f1ce-4ac9-941d-d507cf9a97bf. While this caused no problems as upgrade code is not used by SharpSetup the value should be different for every installer. Therefore if during upgrade process the above mentioned GUID is found it will be replaced with randomly generated new GUID.

  4. In previous versions the Product.Uninstaller.wxi file contained wrong name for uninstaller resource files. They were named after filename (Uninstaller.resources.dll) whereas they should be named after assembly name (Gui.resources.dll). This prevented uninstaller from finding correct localization files and neutral resources were used instead (by default English). During upgrade the filename is changed making the uninstaller to be localized.

Manual upgrade steps

  1. SharpSetup 1.4 moves from executable IntermediateBootstrapper to dll IntermediateBootstrapper. However support for .exe format is still supported. If yyou want to convert to new format right click on IntermediateBootstrapper project node in Solution Explorer and select 'Convert To DLL' command. This will add sample dllmain.cpp file, change project Configuration Type to Dynamic Library, add appropriate include and library paths and configure linking of static library provided with SharpSetup. You will have to move your C++ code by hand.

  2. SharpSetup 1.4 standarizes parameter names passed from command line to intermediate bootstrapper and main GUI. For details see description of command line parameter support in SharpSetup. This may be important espoecially if you use standard command line options in your code or during debugging.

  3. SharpSetup 1.4 changes the way prerequisite name are translated. Instead of PREREQ_NAME_{name} in version 1.2 the PRODUCT_NAME_{name} is used in version 1.4. In version 1.2 all product name/service pack combinations had to be specified explicitely even if they differed only by SP number. SharpSetup 1.4 introduces standard suffixes. By default the "$sp" suffix is defined as "{0} with Service Pack {1}" which means that string "PRODUCT_NAME_dotnet20$sp2" will be translated as .NET Framework 2.0 with Service Pack 2.