Setup Factory for Windows Installer
Copyright © 2007 Indigo Rose Corporation.
All rights reserved.
| Product Name: |
Setup Factory for Windows Installer |
| Version: |
1.1.1017 - (what has changed?) |
| Release Date: |
November 21, 2007 |
| Distribution: |
Unauthorized distribution prohibited. See License.txt for details. |
Table Of Contents
Contact Information
Getting Started
Release History
Copyright & Trademark Notice
General Contact Information
http://www.indigorose.com/site/contact.php
Technical Support
http://support.indigorose.com
User Forums
You can ask questions, report bugs and make suggestions in our online user forums. Please visit http://www.indigorose.com/forums.
The best way to get an installer project started is to open the program and use the project wizard. As you work through the software you can refer to the help file for more detailed explanations of specific dialogs and concepts. When you read the help file it is important to take note of the references and links in the "More Information" section of most topics. The MSDN links can be especially helpful if you are unfamiliar with the Windows Installer.
Setup Factory for Windows Installer builds installers through the open source WiX (Windows Installer XML) Toolset. WiX itself requires .NET 1.1 to run. You can download the Microsoft .NET 1.1 Framework from the Microsoft Download center.
1.1.1017 - November 21, 2007
- Added the Indigo Rose Bootstrapper Designer application. This new stand-alone program allows you to easily edit and build custom bootstrappers for your installers. You can start this new application from Setup Factory's Tools menu or from the Start menu. It is located in Setup Factory's "Bootstrap" subfolder.
- Added the Indigo Rose Script Editor application. This new stand-alone program allows you to edit bootstrapper scripts with support for syntax highlighting, intellisense code completion and help file integration. You can start the script editor by clicking the "Edit Script" button from the Files tab in the Indigo Rose Bootstrapper Designer or from the Start menu. It is located in Setup Factory's "Bootstrap" subfolder.
- Added a new "Indigo Rose Make MSI Transform" tool which allows you to make transform files (.mst) on the command line. It is located in Setup Factory's installation folder. This tool is helpful when you want to make language transforms that can be used to support multiple languages from one installer. See the new help file topic "How To: Support Multiple Languages from One Installer" for details.
- Added an "Other folder" option to the Shortcuts tab of the File Properties dialog. This allows you to easily create a shortcut in any folder.
- Added support for relative paths throughout Setup Factory for Windows Installer. You can now use paths relative to the .sufproj file's location. This helps make installer projects more portable.
- Made it so that .sufproj files' data is now stored in a predictable and repeatable order. This means that when you save a project without making any changes the data elements in the file will remain identical between saves. This change will make it easier to track changes in source control systems.
- Added a new feature to the program that allows you to easily assign files (actually, the file's component) to Features easily through a new "Add to Feature" dialog. The dialog can be accessed by selecting the appropriate files on the main file list and then selecting Edit > Add to feature... from the menu or by right-clicking on the files and selecting Add to feature... from the context menu.
- Added a new action to the bootstrapper's scripting language called Dialog.ComboBox. This action presents a dialog box with a combo box control on it. It is very useful if you want to give the user an early installation option choice such as language.
- Added an optional third argument to XML.SetValue called "WriteCDATA". It is a boolean argument and is false by default if not specified. If true, the data will be written as a CDATA section. If false, the text will be written normally.
- Added support to the bootstrap maker executable for automatically inserting the code needed to run dependency module scripts if "--[[IR_INSERT_DEPENDENCIES]]" is found in the script file.
- Added a Windows XP common control manifest to the bootstrapper runtime engine so that the dialogs take on the current Windows XP/Vista theme properly.
- Made it so that the default embedded setup bootstrapper script puts the product name in the titlebar and sets better text while the installer is being extracted.
- Made it so that the default download setup bootstrapper script puts the product name in the titlebar.
- Made it so that the default run beside setup bootstrapper script puts the product name in the titlebar.
- Added a .NET 1.1 dependency module to the bootstrapper.
- Added a .NET 3.0 dependency module to the bootstrapper.
- Added a notice when you open a project file that is read-only. This is a helpful reminder if the file that you are editing is under source code control.
- Added a new dialog set called "Mini". This is a minimal set of installation dialogs that have a smaller size than standard dialogs.
- Removed the UserProfileDlg dialog from the default UI seuqences. The dialog is still available but should only be used if you want to offer per-user installations and completely understand how to properly design a per-user installation.
- Made it so that the default UI sequences add the ALLUSERS property the list of properties in the Project Settings dialog. This is done to make performing major upgrades easier.
- Added the ElevationShield attribute to the Install buttons in the default UI sets.
- Added a "Continue building after validation errors" option to the Options tab on the Build Settings screen. This allows you to force the build to continue if there were ICE validation errors. Although it is not reccomended to do that, there are cases where it can be needed such as when using merge modules that have validation errors.
- Renamed the built in global build variable ProjectFolder to UserProjectsFolder to better reflect its meaning.
- Changed the built in global build variable ProjectFolder to represent the folder that the currently opened project is located in.
- Made it so that anywhere files are referenced from Setup Factory's installation folder it now uses the SetupFactoryFolder global build variable instead of the absolute path. This makes projects more portable between systems and between the trial and commercial versions of Setup Factory. This new default will only be used in projects created with this version of the software or later - it will not retroactively affect existing projects. Existing projects will retain their absolute paths.
- Added support for three file status states of a file in the design environment: OK, Missing or Unknown. You can see the Status column by turning it on from the Columns dialog (View > Column Manager). The OK status means that the source file is in its specified location. Missing means that the source fle cannot be found. Unknown means that the file cannot be found, however, the use of a build variable in its path may mean that its location will be set at built-time. The colors for missing and unknown files can be set from the User Interface tab of the Preferences dialog.
- Added support for SignTool.exe to the Code Signing tab of the Build Settings dialog.
- Renamed "Upgrade codes" to "Find/remove related programs" on Project Settings > Product tab.
- Renamed "Upgrade Code" dialog to "Related Program" dialog.
- Added an article to the help file about how to make a major upgrade install.
- Updated to WiX 3.0.3516.0.
- Added Dutch language support.
- Changed the bootstrapper runtime's log file command line option to "/LOG:" from "-log:" but kept support for both options in order to maintain backward compatibility.
- Added support for passing /?, /help, or /HELP to the standard bootstrapper scripts to show command line options that are supported.
- Made it so that the build passes ProductName to the bootstrap generator with the standard or custom bootstrapper turned on.
- Made it so that the bootstrapper maker looks in the same folder that the configuration file is from for files that should be included from a relative path.
- Added additional checks to the project loading code to detect and convert duplicate user-profile shortcut component IDs.
- Made it so that RemoveExistingProducts is sequenced after InstallInitialize instead of after InstallFinalize. Although less efficient in some cases, it avoids problems that can happen if you are installing files or other resources to the same locations in the new version as were in the old version during a major upgrade.
- Fixed a problem that made a warning "warning CNDL1054 : The Package/@Platforms attribute has been deprecated. Please use the Platform attribute instead." appear when building a project due to a change in the WiX toolkit.
- Fixed a bug where Feature descriptions were not showing up during installation.
- Fixed a bug where if you left the Working folder field empty in a Run Executable custom action, it wasn't omitting the Directory attribute in the generated WiX.
- Fixed a bug where the Registry key permissions allowed the "Read Control" permission but using it caused a compile error.
- Fixed bug in undo system that was causing duplicate user-profile shortcut component IDs to be generated in some cases. This fixes the "Duplicate symbol 'Component:sufupscid_0001' found." errors.
- Fixed a bug in the registry search properties - the registry value was overwriting the default property value when the project was saved.
- Fixed the silent mode parameter passed to the .NET 2.0 Dependency Module.
- Fixed a bug where if you changed dialog sets during the project wizard or from the Advanced button on the Dialogs dialog, the install types would not update properly.
- Fixed a bug where the Copy command did not work from the right-click context menu on a dialog in the Dialogs dialog while in Advanced edit mode.
- Fixed a problem where the Folder Properties dialog wasn't validating folder names and IDs properly in some cases.
- Fixed a bug where it would not remember the last browsed folder for items on the Code Signing tab of the Build Settings dialog.
- Fixed a minor refresh issue on Dependencies tab of Standard Bootstrapper Properties dialog when clicking the "Remove" button.
1.1.1009 - August 23, 2007
- Added a bootstrap wrapper to the Setup Factory for Windows Installer installation.
- Indexed the main Setup Factory for Windows Installer help file.
- Moved the line in the default embedded setup bootstrapper script "--[[IR_INSERT_DEPENDENCIES]]" to after the check that extracts the MSI file and exits. This way if you pass the "/EXTRACTMSI" command line argument it will do that and exit before starting to check dependencies.
- Added a new menu option - "Help > Training Videos..." that takes you the Setup Factory for Windows Installer Videos page online.
- Made it so that when you browse for merge module files on the Merge Module Properties dialog it remembers the last path that you used.
- Added "Check All" and "Uncheck All" buttons to the User Permission Properties dialog.
- Made it so that when you enter the Language Properties dialog the Messages are sorted alphabetically by ID. The sorting can be changed by clicking a column header.
- Made it so that when you add a new message it gets selection and focus in the Messages list on the Language Properties dialog.
- Made some changes to the Merge Module Properties dialog. Now the Filename fields is read-only. This change was made in order to make it more reliable to import settings from MSM files when you change the file.
- Added the ability to configure merge module configuration variables.
- Added a check for duplicate merge module files in list when adding a new merge module to the project.
- Made it so that when you add a merge module to your project it is scanned for dependency merge modules. If it requires other merge modules you are given the option to have Setup Factory automatically try and find the file, to browse for it yourself or to skip the file altogether.
- Added an option to the Project tab of the Preferences dialog that allows you to control whether dependent merge modules are automatically searched for before prompting the user for action when adding merge modules to the project.
- Added a "Scan Dependencies" button to the Merge Modules dialog that allows you to scan the selected merge module(s) for dependent merge modules.
- Made it so that if the language specified for a merge module is not in the module or if you use the Use build language setting for a merge module and the build language is not supported by the module, the module's default language will be used - avoiding a build error.
- Made it so that the variables "ProductCode" (the installer's product code), "PackageCode" (the built installer's package code) and "ProductVersion" (the installer's product version) will be passed to custom bootstrapper builds. These variables can be accessed within your scripts as "$(ProductCode)", "$(PackageCode)" and "$(ProductVersion)", respectively.
- Changed some of the script used in the bootstrapper's _global_functions.lua as well as some of the default scripts to account for a missing original (old version) MSI file. The file will now be copied from the local cache to the extracted or downloaded location if needed.
- Fixed a bug that would cause Setup Factory to crash when you opened a document and recent document history was turned off on the system.
- Fixed a bug where all icon (.ico) files added to the file list would have the same icon as the first one in the project. Now each one correctly has its own icon.
- Fixed a bug where destination paths in the file list would not appear to be updated properly after the project wizard was run until the list was redrawn by mousing over the items.
- Fixed a bug where specifying a custom icon on a Create Shortcut action would cause a build warning and the icon would not be properly assigned to the shortcut.
- Fixed a bug in the default embed setup within bootstrapper script which would cause the allow extraction of the MSI file to always be enabled.
- Fixed a bug in the saving and loading of Upgrade Codes. Using upgrade codes would cause Setup Factory to hang when loading a project. If you have this problem, open the .sufproj file in a text editor and remove all child elements of the section and then save the file. You will have to re-add your upgrade codes, but the file will be valid.
1.1.1007 - August 8, 2007
- Added support for Internet Information Services (IIS) actions through the WiX IIS extension. They are accessible from Actions > Internet Information Services under the menu. New actions include Create Web Site, Create Virtual Directory, Create Web Service Extension and Create Web Application Pool.
- Added translated language files for the following languages for both installs and bootstrappers: Arabic, Chinese (Traditional), Danish, French, German, Hungarian, Polish, Portuguese (Brazilian) and Russian.
- Added a field for the destination filename of a file to the General tab of the File Properties dialog. This allows you to have a file install as a different name on the destination system than it had on the source (development) system.
- Added the ability to set the comments field in the version resource information for the bootstrapper executable.
- Made it so that when you use the Browse button on the Merge Module Properties dialog to find a merge module file it will automatically read the module identifier and language from the merge module and fill in the appropriate fields on the dialog automatically. It also checks the merge module for dependency merge modules and reports the module IDs that it requires at that time.
- Added support for adding your own custom file filters for the Add Files to Project dialog. They can be configured using the file "_add_files_filters.xml" in the "Data" subfolder of Setup Factory's installation folder.
- Disabled the maximize button on the bootstrap runtime dialog.
- Added more length to the radio buttons on the UserProfileDlg dialog in order to better accommodate non-English languages.
- Adjusted the sizes of some of the controls on the OutOfRbDiskSpaceDlg dialog in order to better accommodate translated text.
- Added a text description to the error number that is reported at the end of the build log when the build fails. (This is in addition to the error text which is already reported within the build log.)
- Added some more tables to the merge module ensure tables xml file.
- Added MsiRMFilesInUse dialog to all default UI sets. This dialog is required for Vista Certification. It can be retroactively added to existing installer projects by selecting Advanced edit mode on the Dialogs dialog, selecting "Support Dialogs" and then clicking the Add button.
- Added a topic to help file: "How To: Ensure That Your Installer Passes Certified for Windows Vista Test Cases".
- Fixed a variety of bugs dealing with the movement and editing of Radio buttons and Radio button groups in the dialog editor.
- Fixed "Remove file failed:" error situation. Files without valid destinations can now be removed even if their shortcut data points to an invalid user-profile shortcut component ID. This only happened for files which have had shortcuts enabled in the past (for example, .exe files which have shortcuts enabled by default) and are configured to use a destination folder ID which does not point to a valid folder in the Folders dialog (i.e. the folder was removed but the destination path was not updated).
- Fixed a bug where Run Executable custom actions that used a property or internal binary would fail to compile if a command line argument was not specified.
- Fixed a bug where data on the Control Service actions property dialog was not properly being synchronized.
- Fixed a bug where changing dialog sets form the Dialogs dialog would re-add the default language but would not reset the language selector combo box.
1.1.1004 - July 5, 2007
- Added support for making Merge Module projects. Now when you start a new project you can choose between an installer project or a merge module project. See the "Creating Merge Modules" topic in the Help file for more details.
- Added a .NET 2.0 detection and installation dependency module to the bootstrapper.
- Added the ability to change the version resource data, and the icon of the bootstrap executable. This is done from the Resources tab of the Standard Bootstrapper Properties dialog.
- Added a second line of text to the bootstrap progress (runtime) dialog.
- Added: The Application.EnableTextChange action to allow for greater control over the automatic progress displayed on the bootstrap dialog.
- Added support to the bootstrap executable for a function called OnCancelButtonPressed. If defined, it is called when the cancel button is pressed. It should return a boolean true or false. This gives you a chance to confirm the cancellation or to perform clean-up, etc.
- Added an optional callback function to the Archive.Extract() action in the bootstrapper.
- Added OS detection support for Windows 2003 SP1 and SP2 to the Launch Conditions.
- Setup Factory now keeps track of custom icon files and will only include one copy of each icon file that is used in the project - using the same icon in two places will no longer result in having two copies of the source file in the .msi binary data.
- Made the root folder TARGETDIR visible in the Folders dialog (mostly so it can be selected in merge modules). You can now add and edit custom folders directly beneath TARGETDIR (note that you still cannot edit the standard MSI system folders).
- Made it so that you can now move items up/down/left/right in the folder tree using Ctrl+Cursor Up, Ctrl+Cursor Down, etc.
- Added _SourceFilename variable to the bootstrapper runtime. This represents the full path and filename of the bootstrapper executable.
- Added _SourceDrive variable to the bootstrapper runtime. This represents the drive letter (i.e. "C:") of the drive that the bootstrapper executable is being run from.
- Created an MSBuild task extension DLL so that you can easily build your projects through MSBuild. See the "\MSBuild" subfolder for files and instructions.
- Added a new UI dialog "CollectUserInformationDlg" that allows you to collect the user' name, company name and serial number during installation.
- Added a new tutorial to the help file: "How To: Add a Serial Number Validation Screen to Your Project".
- Added action to bootstrapper: MSI.CloseHandle
- Added action to bootstrapper: MSI.ConfigureProduct
- Added action to bootstrapper: MSI.ConfigureProductEx
- Added action to bootstrapper: MSI.ReinstallProduct
- Added action to bootstrapper: MSI.ConfigureFeature
- Added action to bootstrapper: MSI.ReinstallFeature
- Added action to bootstrapper: MSI.InstallMissingComponent
- Added action to bootstrapper: MSI.InstallMissingFile
- Added action to bootstrapper: MSI.GetComponentPath
- Added action to bootstrapper: MSI.LocateComponent
- Added action to bootstrapper: MSI.GetProductCode
- Added action to bootstrapper: MSI.EnumProducts
- Added action to bootstrapper: MSI.EnumRelatedProducts
- Added action to bootstrapper: MSI.EnumFeatures
- Added action to bootstrapper: MSI.EnumComponents
- Added action to bootstrapper: MSI.EnumClients
- Added action to bootstrapper: MSI.GetFeatureUsage
- Added action to bootstrapper: MSI.GetUserInfo
- Added action to bootstrapper: MSI.OpenProduct
- Added action to bootstrapper: MSI.OpenPackage
- Added action to bootstrapper: MSI.GetProductProperty
- Added action to bootstrapper: MSI.GetShortcutTarget
- Added action to bootstrapper: MSI.GetFeatureInfo
- Added action to bootstrapper: MSI.VerifyPackage
- Added action to bootstrapper: MSI.ApplyPatch
- Added action to bootstrapper: MSI.EnumPatches
- Added action to bootstrapper: MSI.GetPatchInfo
- Added action to bootstrapper: MSI.GetFileVersion
- Added 43 merge modules to the "Merge Modules\Visual Studio 6.0 SP6" folder. These are used by technologies in Visual Studio 6.0 such as Visual Basic 6.0 and Visual C++ 6.0. Some were modified from their original to fix known bugs related to windows file protection on Windows 2000 and up.
- Added a checkbox that allows you to turn off the build confirmation dialog on the dialog itself.
- Added clarification to the dialog that appears when you import the same UI set and type as is already in your project.
- The Verbose linker option is now turned off by default for new projects. (This means that ICE validation text will only appear when there are ICE validation errors or warnings.)
- Added a Help menu option to open the bootstrap maker help file.
- Put error checking around the Archive.RunScriptFile call generated for running dependency modules from the main bootstrapper script. Now if a script error occurs, the runtime engine exits.
- Added system error code number to the "Error 5000" error message when light.exe can't be executed.
- Added support for expanding build variables to the bootstrapper settings.
- Added some new messages to the Language_en-us.lang file. Mostly to accommodate newly added and future WiX extensions.
- Updated the WiX distribution to version 3.0.3029.0.
- Made the Timing list on the Attributes tab of custom actions have three columns of data instead of one. Also added support for sorting the items by clicking on a column header.
- Added support for automatically adding EnsureTable WiX elements for merge modules during the build. This helps avoid Light.exe error LGHT0204 (ICE03). The list of tables that are legal to add as EnsureTable entries if found in a merge module is in the file "...\Data\mergemodule_ensuretables.xml" under the Setup Factory installation folder.
- Added a step at the end of the build to clean up some zero-byte files in the temporary folder left by WiX.
- Fixed: A problem where pasting a file into a project where the file's destination folder Id does not exist would cause the destination path to be blank.
- Fixed: Made the horizontal scrollbar show up properly on the list boxes in the Insert File ID, Insert Build Variable and Insert Property dialogs.
- Fixed: (Bootstrap builder) Made it so that the SetupFilename option does not have to be a full path.
- Fixed: Removed a duplicate error message that was being displayed when importing DLL registration settings failed.
- Fixed: Made the Insert Message ID dialog resizable.
- Fixed: Build variables are now properly expanded in the output name.
- Fixed: A small display issue where the status text was not updating all of the time in the status bar.
- Fixed: Added better support for the Cancel button on the status dialog in the bootstrapper runtime.
- Fixed: Having a previously built bootstrapper (setup.exe) file in the output folder no longer displays an empty error message when building with the bootstrapper option disabled.
- Fixed: A bug where file items that had their filename's changed were not being deleted from the project properly.
- Fixed: An error where pasted files were not getting their internal Id set properly.
- Fixed: The description of the CommonFilesFolder build variable on the Insert Build Variables dialog.
- Fixed: The user-profile shortcut component ID (e.g. sufupscid_0003) is now removed from the list of component IDs internally when a file is removed from the project, freeing that ID for future file shortcuts to use.
- Fixed: Setup Factory now makes sure the user-profile shortcut component ID is unique when pasting file items.
- Fixed a problem where the document would be marked as changed if new messages were added to a language through automatic synchronization during an unattended build which would in turn cause the build to freeze on a confirmation dialog.
- Fixed a bug where the dialog would lose changes that were made to its controls and layout if you double-clicked on the dialog in the list or tree controls and changed the dialog's properties.
- Fixed: The build would sometimes fail with an error 4000 (error executing candle.exe) on Windows 2000. We are no longer limiting the maximum length of the candle.exe command line to 260 characters when calling CreateProcess on Windows 2000 (the limit is now 32768 characters as on other operating systems).
1.1.1000 - June 4, 2007
Setup Factory for Windows Installer, the Setup Factory logo and all related files and
documentation are Copyright © 1992-2007 Indigo Rose Software Design Corporation.
All rights reserved.
Setup Factory is a trademark of Indigo Rose Software Design Corporation. All
other trademarks or registered trademarks mentioned are the property of their
respective owners.