This document describes changes in default solution created using SharpSetup 1.6 and SharpSetup 1.8.
New GUI type
SharpSetup 1.8 introduces the ability to create Windows Presentation Foundation (WPF) GUI for your installer as an alternative to WinForms GUI available in previous versions. This move from one specific GUI type to multiple GUI types has the biggest impact on changes to solution structure between SharpSetup 1.6 and SharpSetup 1.8.
Here is the list of changes made during upgrade:
A link to SharpSetup.WinForms.dll is added to Files folder in Assembler project. In case you create the project from scratch, the link will either be SharpSetup.WinForms.dll or SharpSetup.Wpf.dll depending on the type of GUI chosen during installer initial configuration.
Two references are added to Translation project: SharpSetup.dll and SharpSetup.WinForms.dll (or SharpSetup.Wpf.dll in case of WPF GUI). In previous versions the source of strings for translation was implicitly defined, whereas in SharpSetup 1.8 they need to be defined explicitly.
A reference to SharpSetup.WinForms.dll (or SharpSetup.Wpf.dll) has been added to Gui project.
Components for GUI type specific files are added to Assembler project. The GuiType define is created having the value of either WinForms or Wpf and then SharpSetup.$(var.GuiType).dll file is added along with translation files (SharpSetup.$(var.GuiType).resources.dll files in culture subfolders).
Some types that were previously in SharpSetup.UI.Controls namespace are now moved to SharpSetup.Base namespace as they are used by both types of GUI. This includes the following types: PrerequisiteCheckItem, PrerequisiteCheckStatus, InstallationMode, DiskSpaceInfoType.
The Wizard.GetVariable() and Wizard.SetVariable() methods have been moved to Globals class to decouple them from GUI specific Wizard class.
Other improvements in SharpSetup result in the following changes:
The file Gui.exe.config has been added to enable user to easily define that Gui.exe compiled for .NET 2.0 runtime can run on .NET 4.0 runtime. This involves changes in Assembler project (Gui.exe.config added as link to Files folder), Gui project (adding standard app.config file) and Package project (making sure the file is installed along with Uninstaller.exe).