What’s New in InstallShield 2010

InstallShield 2016

New Features

InstallShield includes the following new features.

Support for Creating Customized Virtual Applications

Now you can use InstallShield to create customized virtual applications in the Microsoft App-V format. Virtualization enables you to isolate an application in its own environment so that it does not conflict with existing applications or modify the underlying operating system.

Virtual applications run in virtual environments that keep the application layer and the operating system layer separate. Each application includes its own configuration information in its virtual environment. As a result, many applications can run side-by-side with other applications on the same computer without any conflicts.

To create a virtual application, use the new Microsoft App-V tab that is available in the following project types: Basic MSI and MSI Database.

Virtualization support is available if you purchase the Premier Edition of InstallShield.

InstallShield also includes InstallShield prerequisites for the Microsoft App-V 4.5 Desktop Client installation and the Microsoft Application Error Reporting installation. The Application Error Reporting prerequisite is a dependency of the App-V prerequisite. The redistributable files for these InstallShield prerequisites are not available for download from within InstallShield, since you must obtain them from Microsoft. Once you obtain them from Microsoft, place them in the location that is displayed when you are editing these prerequisites in the InstallShield Prerequisite Editor.

For more information, see:

Creating Customized Virtual Applications
About Virtualization
Creating Microsoft App-V Applications

Ability to Target Windows 7 and Windows Server 2008 R2 Systems

InstallShield enables you to specify that your installation requires Windows 7 or Windows Server 2008 R2. It also lets you build feature and component conditions for these operating systems.

Windows 7 and Windows Server 2008 R2 Support for Displaying Installation Progress on the Taskbar

Installations that are run on Windows 7 and Windows Server 2008 R2 now show a progress bar on the Windows taskbar during file transfer. This applies to InstallScript and InstallScript MSI installations. In addition, it applies to Basic MSI installations that display billboards that were configured in the Billboards view. Note that a progress bar is not displayed on the taskbar on earlier versions of Windows. It is also not displayed during setup initialization or while InstallShield prerequisites are being installed.

Beta Windows Installer 5 Support for Per-User Installations

The General Information view has a new Show Per-User Option setting. This setting lets you specify whether you want the ReadyToInstall dialog—in certain scenarios—to include buttons that let end users indicate how they want to install the product: for the current user or for all users. The per-user button sets the new Windows Installer property MSIINSTALLPERUSER equal to 1 to indicate that the package should be installed for the current user. The MSIINSTALLPERUSER property is available with the beta of Windows Installer 5.

This feature is available in Basic MSI projects.

To learn more, see Per-User vs. Per-Machine Installations.

Beta Windows Installer 5 Support for Reducing the Time for Installing Large Packages

Use the new Fast Install setting in the General Information view to select one or more options that may help reduce the time that is required to install a large Windows Installer package. For example, you can specify that you do not want a system restore point to be saved for your installation. You can also specify that you want the installation to perform file costing, but not any other costing.

This setting configures the new Windows Installer property MSIFASTINSTALL, which can be set at the command line. Windows Installer 5 includes support for this property. Earlier versions of Windows Installer ignore it.

This setting is available in the following project types: Basic MSI, InstallScript MSI, MSI Database, and Transform.

To learn more, see the description of the Fast Install setting.

Beta Support for Additional Windows Installer 5 Features

The Director Editor in InstallShield includes beta support for the new Windows Installer 5 tables (MsiLockPermissionEx, MsiServiceConfig, MsiServiceConfigFailureActions, and MsiShortcutProperty).

This feature is available in the following project types: Basic MSI and InstallScript MSI.

Ability to Detect the Presence of a Virtual Machine

InstallShield lets you determine whether an installation is running on any of the following types of virtual machines:

Microsoft Hyper-V
A VMware product such as VMware Player, VMware Workstation, or VMware Server
Microsoft Virtual PC

Two new Windows Installer properties are available when you add an MSI DLL custom action to your project to detect virtual machines: IS_VM_DETECTED and IS_VM_TYPE. The custom action should be configured to call the ISDetectVM function in the SetAllUsers.dll file, which is installed with InstallShield.

In addition, the InstallScript language has been expanded to support the detection. The structure SYSINFO contains a new bIsVirtualMachine member, and a new VIRTUAL_MACHINE_TYPE constant is available for use with the InstallScript function GetSystemInfo.

This feature is available in the following project types: Basic MSI, InstallScript, InstallScript MSI, InstallScript Object, and Merge Module.

For more information, see Detecting Whether the Installation Is Being Run on a Virtual Machine.

Support for 64-Bit COM Extraction

InstallShield now supports 64-bit COM extraction. If you are using InstallShield on a 64-bit operating system, InstallShield can extract COM data from a 64-bit COM server. In order to install the data to the correct locations, the component must be marked as 64 bit.

InstallShield must be installed on a 64-bit operating system in order to perform 64-bit COM extraction.

This feature is available in the following project types: Basic MSI, InstallScript MSI, and Merge Module.

To learn more, see:

Targeting 64-Bit Operating Systems
Extracting COM Information from a COM Server

New Support for Setting Permissions for Files, Folders, and Registry Keys

InstallShield offers two new ways to secure files, folders, and registry keys for end users who run your product in a locked-down environment:

Custom InstallShield handling—In Windows Installer–based projects, you can choose to use custom support for setting permissions at run time. With this option, InstallShield stores permission information for your product in the custom ISLockPermissions table of the .msi database. InstallShield also adds custom actions to your project to set the permissions. This support is available in the following project types: Basic MSI, InstallScript MSI, Merge Module, MSI Database, MSM Database, and Transform.
SetObjectPermissions, an InstallScript Function—You can use the new SetObjectPermissions function in InstallScript events and InstallScript custom actions to set permissions at run time. You can use this function in the following project types: InstallScript, Basic MSI, InstallScript MSI, and Merge Module.

With the custom InstallShield handling option, the file, folder, or registry key for which you are setting permissions must be installed as part of your installation. With the SetObjectPermissions function, the file, folder, or registry key can be installed as part of your installation, or it can be already present on the target system.

Previously, the only option that InstallShield offered for setting permissions was to use the traditional Windows Installer handling. With this option, the permission information is stored in the LockPermissions table of the .msi database. The new custom InstallShield handling option and the SetObjectPermissions function offer several advantages over the traditional Windows Installer handling:

The custom option and the SetObjectPermissions function include support for many well-known security identifiers (SIDs) that are not supported by the traditional Windows Installer handling option.
The custom option and the SetObjectPermissions function support the use of localized user names for the supported SIDs, unlike the traditional option. With the traditional option, if you try to use a localized name to set permissions on a non-English system, the installation may fail.
The custom option and the SetObjectPermissions function let you specify that you want to deny a user or group from having the permissions that you are specifying. The traditional handling does not allow you to do this.
The custom option and the SetObjectPermissions function let you add permissions to a file, folder, or registry key that already exists on the target system, without deleting any existing permissions for that object. With the traditional handling, the existing permissions are deleted.
The custom option and the SetObjectPermissions function let you configure permissions for a folder (or a registry key), and indicate whether you want the permissions to be applied to all of the folder’s subfolders and files (or the registry key’s subkeys). With the traditional handling, if you want to configure permissions for a subfolder or a file in a folder (or a subkey under a registry key), the parent that is created on the target system automatically inherits the permissions of its child.
The custom option and the SetObjectPermissions function let you configure permissions for a new user that is being created during the installation. The traditional handling does not allow you to do this; the user must already exist on the target system at run time.

The General Information view has a new Locked-Down Permissions setting that lets you specify whether you want to use the new custom InstallShield handling or the traditional Windows Installer handling for all new permissions that you set for files, folders, and registry keys in your project. If you have already configured some permissions in your project and then you change the value of this setting, InstallShield lets you specify whether you want to use the alternate handling method for those already-existing permissions. In all new projects, the default value for this setting is the custom InstallShield handling option. If you upgrade a project from InstallShield 2009 or earlier to InstallShield 2010, the traditional Windows Installer handling option is the default value of this setting. This new setting is available in the following project types: Basic MSI, InstallScript MSI, Merge Module, MSI Database, MSM Database, and Transform.

For more information, see the following:

Securing Files, Folders, Registry Keys, and Windows Services in a Locked-Down Environment
Selecting the Locked-Down Permissions Type for a Project
SetObjectPermissions
SetObjectPermissions Example

Support for InstallShield Prerequisites in InstallScript Projects

InstallShield now enables you to add InstallShield prerequisites to InstallScript projects. Previously, only Basic MSI and InstallScript MSI projects included support for this type of redistributable.

InstallShield prerequisites are redistributables that usually install a product or technology framework that is required by your product. Now you can add any of the InstallShield prerequisites that are provided with InstallShield—or any of your own custom-designed InstallShield prerequisites—to InstallScript projects. If you work on a mix of different project types, InstallShield lets you simplify your testing matrix by enabling you to reuse this type of redistributable in all of your Basic MSI, InstallScript, and InstallScript MSI projects.

To add an InstallShield prerequisite to an InstallScript project, use the new Prerequisites view. InstallScript projects include support for the setup prerequisite type of InstallShield prerequisite, which is run before the main installation’s user interface is run. InstallScript projects do not have support for feature prerequisites, which are InstallShield prerequisites that are associated with features.

For more information, see:

Adding InstallShield Prerequisites, Merge Modules, and Objects to InstallScript Projects
Run-Time Behavior for an Installation that Includes InstallShield Prerequisites
Specifying the Installation Order of InstallShield Prerequisites
Specifying a Run-Time Location for a Specific InstallShield Prerequisite
Specifying the Run-Time Location for InstallShield Prerequisites at the Release Level
Designing InstallShield Prerequisites and Other Redistributables
Prerequisites View

New InstallShield Prerequisites for Windows Installer, .NET Framework, Crystal Reports, and Other Redistributables

InstallShield includes a number of new InstallShield prerequisites that you can add to Basic MSI, InstallScript, and InstallScript MSI projects:

Windows Installer 4.5 (The InstallShield prerequisites for Windows Installer 4.5 include the fix that is described in Microsoft KB958655.)
Windows Installer 4.5 Update (The InstallShield prerequisites for the Windows Installer 4.5 Update include the fix that is described in Microsoft KB958655. Windows Installer 4.5 must already be installed on the target system for this update.)
Windows Installer 3.1, Windows Installer 3.0, and Windows Installer 2.0 (These versions of Windows Installer redistributables were previously available if you added Windows Installer to your project in the Releases view. These versions were not previously available as InstallShield prerequisites.)
.NET Framework 3.0 SP1
.NET Framework 2.0 SP2
Internet Explorer 8
Microsoft SQL Server 2008 Express SP1
Microsoft SQL Server 2005 Express SP3
Microsoft Visual C++ 2005 SP1 Redistributable Package
Oracle 11g Instant Client 11.1.0.7 (Oracle does not provide an installer for the Oracle Instant Client files, so you need to create an .msi package before you can use this InstallShield prerequisite in your projects. You can do so easily by using the Oracle Instant Client installation project that is installed with InstallShield (InstallShield Program Files Folder\Support\Oracle Instant Client.)
Crystal Reports Basic for Visual Studio 2008 (Use this prerequisite with the Crystal Reports Basic installation that is installed with Visual Studio 2008. Note that you may need to change the path of the Crystal Reports Basic installation in the .prq file, depending on where the .msi package is located on your system.)

Microsoft SQL Server 2008 SP1 Support

InstallShield now includes support for running SQL script on SQL Server 2008 SP1. In addition, InstallShield includes SQL Server 2008 SP1 in the predefined list of database servers that you can select when you are specifying in the SQL Scripts view the target database servers that your product supports.

Oracle 11g Support

InstallShield now includes support for running SQL script on Oracle 11g. In addition, InstallShield includes Oracle 11g in the predefined list of database servers that you can select when you are specifying in the SQL Scripts view the target database servers that your product supports.

New Tool for Scanning an IIS Web Site, Recording Its Settings, and Importing Those Settings into an InstallShield Project

InstallShield includes an IIS scanner (IISscan.exe), a new command-line tool for scanning an existing IIS Web site and recording IIS data about the Web site. The IIS scanner creates an XML file that contains all of the settings for the Web site, its virtual directories, its applications, and its application pools. You can use the XML file to import the IIS data into the Internet Information Services view in InstallShield. Once you have imported the IIS data into a project, you can use the Internet Information Services view to make changes to the IIS settings as needed.

The ability to import the IIS data into an InstallShield project is available only in the Premier edition of InstallShield.

For more information, see:

Scanning an IIS Web Site and Importing Its Settings into an InstallShield Project
Filtering IIS Data When Importing a Web Site and Its Settings into an InstallShield Project
IISscan.exe

Ability to Add IIS Web Applications to Web Sites, Plus Other IIS-Related Improvements

InstallShield now lets you add IIS Web applications to Web sites. You can do so by right-clicking a Web site in the Internet Information Services view and clicking New Application. Once you have added a new application, you can configure its settings in the right pane.

InstallShield also lets you create a virtual directory without an application. Previously whenever you created a virtual directory, an application was also created automatically.

In addition, InstallShield has new IIS settings:

Managed Pipeline Mode—This setting enables you to specify the appropriate request-processing pipeline mode—either integrated or classic—for an application pool.
Enable 32-Bit Applications—This setting lets you specify whether you want to allow 32-bit applications in the selected application pool to be run on 64-bit systems.
.NET Framework Version—This setting is where you specify the version of the .NET Framework that an application pool should load.
ASP.NET Platform—If your installation may be run on a 64-bit version of Windows with the .NET Framework, use this setting to specify which ASP.NET platform should be used to map a Web site, application, or virtual directory to the ASP.NET version.

This feature is available in the following project types: Basic MSI, InstallScript, and InstallScript MSI.

To learn more, see:

Creating a Web Site and Adding an Application or a Virtual Directory
Internet Information Services View

New View for Configuring Run-Time Text File Changes

InstallShield has a new Text File Changes view, which enables you to configure search-and-replace behavior for content in text files—for example, .txt, .htm, .xml, .config, .ini, and .sql files—that you want to modify at run time on the target system. The text files can be part of your installation, or they can be files that are already present on target systems.

You can use Windows Installer properties to specify the names of the text files that you want to include in or exclude from your search. You can also use properties to specify the search strings and the replacement strings. This enables you to use data that end users enter in dialogs, or other configuration information that is determined at run time, when your product’s text files are modified on the target system. For example, if your project includes a dialog in which end users must specify an IP address, your installation can search a set of files for a token, and replace it with the IP address that end users enter.

Note that the Text File Changes view offers an alternative for configuring XML file changes in the XML File Changes view. Using the Text File Changes view offers some advantages. For example, this new view does not have any run-time requirements; however, changes that are configured through the XML File Changes view require MSXML to be present on the target system. In addition, configuring changes in the Text File Changes view does not require you to enter XPath queries, as is required in the XML File Changes view.

The Text File Changes view is available in the following project types: Basic MSI and InstallScript MSI.

For more information, see:

Modifying Text Files
Creating a Text Change Set
Specifying a Change for a Text File
Changing the Order in Which Text File Changes Are Made
Using Windows Installer Properties to Dynamically Modify Text Files
Specifying the Code Page that Should Be Used for Opening ANSI Text Files

New String Editor View

InstallShield has a new String Editor view. This view contains a spreadsheetlike table that shows the collection of language-independent identifiers and corresponding language-specific values for your project. In the String Editor view, you have complete and centralized control over the localizable text strings that are displayed at run time during the installation process. The view replaces the string tables that were previously available as nodes within the General Information view. Following is a list of some of the highlights of the new view:

The view has a toolbar with buttons that let you add, edit, delete, find, replace, export, and import string entries. It also has a button that lets you search the project to identify all of the instances in which a specific string identifier is used.
The top of the view has a new group box area; you can drag and drop column headings onto this area to organize the rows in the view in a hierarchical format. This functionality makes it easy to sort string entries by categories such as language and by modified date.
This view has support for dynamic searches—as you are typing a string in the search box, InstallShield hides all of the string entries that do not contain it.

This feature is available in the following project types: Basic MSI, InstallScript, InstallScript MSI, InstallScript Object, Merge Module.

For more information, see:

String Editor View
Localizing the End-User Interface

Support for Unicode

InstallShield takes a three-pronged approach to fully supporting modern multilanguage installations: Windows Installer databases can now be built in a Unicode format, InstallShield projects are now stored in a Unicode format, and the InstallShield interface now supports entering and viewing Unicode characters from multiple character sets at the same time.

Unicode (UTF-8) Databases

The Build tab in the Releases view has a new Build UTF-8 Database setting that lets you specify that a Windows Installer database, along with any instance or language transforms, be built using the UTF-8 encoding. The UTF-8 encoding supports characters from all languages simultaneously, enabling you to mix and match, for example, Japanese and German, or Russian and Polish, both in text shown to end users and in file names and registry keys. These mixed languages work correctly regardless of the current language of the target system. Unicode support has also been added to key parts of the installation run times, including IIS support and changes to text and XML files.

The default value for the new Build UTF-8 Database setting is No.

The automation interface now includes support for this new setting. The ISWiRelease object includes a new BuildUTF8Database property that lets you specify whether you want to use the UTF-8 encoding.

This feature is available in the following project types: Basic MSI, InstallScript MSI, and Merge Module projects.

To learn more, see the description of the Build UTF-8 Database setting.

Unicode Project Files (*.ism)

InstallShield now uses the UTF-8 encoding when saving both binary and XML project files. Because of this change, the files, registry data, and other strings that are used in the project can include characters from all languages simultaneously. With this encoding, InstallShield no longer needs to use an unreadable Base64 encoding for strings that are stored in the ISString table. Instead, as you add or modify strings in a project, InstallShield now saves them as human-readable Unicode strings that you can easily examine for changes across revisions of your project. Therefore, InstallShield uses only Unicode strings for all new projects that are created in InstallShield 2010; for upgraded projects, InstallShield uses Unicode for new and modified strings, as well as for strings that have been exported and reimported.

If you use Unicode values that cannot be represented in the target build (for example, an InstallScript installation, or a Basic MSI installation in which No is selected for the Build UTF-8 Database setting), a new build error points to the item that needs to be changed. In some instances, this reveals invalid string entries that were silently allowed in earlier versions of InstallShield.

This feature applies to all project types.

Unicode Views in InstallShield

Many views in InstallShield have been enhanced to display and allow you to enter characters from all languages. For example, in the Files and Folders view, Chinese file names from your local English system are no longer displayed with question marks for their names, and now you can add these files to your project. Similarly, the Registry view no longer converts Thai registry keys or values to question marks, and you can install them with your Windows Installer–based projects. In addition, you can view and edit strings from all languages in the String Editor view, a new separate view; previously, string entries were available from separate language nodes in the General Information view. Examples of other enhanced views include the Property Manager, Path Variables, Direct Editor, General Information, and Setup Design views.

Note that whenever No is selected for the Build UTF-8 Database setting, all file names, registry keys, and other strings must still consist of characters from the code page of all target languages that will use it. In this scenario, if an item uses a character that is not available on the code page of a target language, InstallShield reports a new build error that points to this item; the Chinese file name cannot be used in an English installation unless Yes is selected for the Build UTF-8 Database setting.

This feature applies to all project types.

New Billboard Support in Basic MSI Projects

Basic MSI projects now include support for billboards. You can add billboards to your projects to display information to end users during the installation process. The billboards can be used to communicate, advertise, educate, and entertain end users. For example, billboards can present overviews on new features of the product being installed or other products from your company. Each billboard is a file that you or your company’s graphics department creates for complete control over the look and feel of the file transfer.

Following are some of the highlights regarding billboard support in Basic MSI projects:

You can add an Adobe Flash application file (.swf) as a billboard in your project. Flash application files can consist of videos, movies, sounds, interactive interfaces, games, text, and more—anything that is supported by the .swf type of file.
InstallShield lets you use .bmp, .gif, .jpg, and .jpeg files as billboards.
InstallShield includes a Billboard Type setting that lets you specify which style of billboard you want to use in your installation. For example, with one style, the installation displays a full-screen background, with billboards in the foreground, and a small progress box in the lower-right corner of the screen. With another style, the installation displays a standard-size dialog that shows the billboards. The bottom of this dialog shows the progress bar.
InstallShield lets you preview a billboard to see how it would be displayed at run time, without requiring you to build and run a release. Previewing a billboard lets you see how your billboard will look with the background color, position, and related settings that are currently configured for your billboard.

The Billboards view in InstallShield is where you add billboard files, configure billboard-related settings, and preview billboards.

To learn more, see:

Displaying Billboards in Basic MSI Installations
Billboard File Types for Basic MSI Projects
Types of Billboards for Basic MSI Projects
Adding an Adobe Flash Application File Billboard to a Basic MSI Project
Adding Image Billboards to a Basic MSI Project
Configuring Billboard Settings in a Basic MSI Project
Previewing Billboards Without Building and Launching a Release
Setting the Billboard Order in a Basic MSI Project
Run-Time Behavior of a Basic MSI Installation that Includes Billboards

Previously, only InstallScript and InstallScript MSI projects included support for billboards. Note that billboard support in these project types is different than support in Basic MSI projects. For more information, see Displaying Billboards.

Expanded Billboard Support in InstallScript and InstallScript MSI Projects

InstallScript and InstallScript MSI projects now let you use .gif, .jpg, and .jpeg files as billboards. Previously, only .bmp files were supported. Use the Support Files/Billboards view to add billboards to your project.

Billboard files in InstallScript and InstallScript MSI projects must follow a designated naming convention. Each file name must begin with bbrd, followed by the number of the billboard (from 1 through 99); each must end with a supported file extension (.bmp, .gif, .jpg, or .jpeg). Note that it is no longer necessary for the file name numbers to be contiguous; that is, you can add bbrd1.jpg, bbrd3.jpg, and bbrd5.jpg to your project, and each image is displayed at run time in order. Previously, there could not be any numbers missing from the file name sequence for your billboards. For example, if you added bbrd1.bmp, bbrd2.bmp, and bbrd4.bmp to your installation project, then bbrd1.bmp and bbrd2.bmp were displayed at run time; however, bbrd4.bmp was not displayed, since bbrd3.bmp was missing from the sequence.

For more information, see:

Displaying Billboards in InstallScript and InstallScript MSI Installations
Naming Billboard Files in an InstallScript or InstallScript MSI Project
Adding an Image Billboard to an InstallScript or InstallScript MSI Project

Ability to Play an Adobe Flash Application File (.swf) with the InstallScript Function PlayMMedia

The InstallScript function PlayMMedia now includes support for playing an Adobe Flash application file (.swf) on a background window during InstallScript and InstallScript MSI installations. Flash application files can consist of videos, movies, sounds, interactive interfaces, games, text, and more—anything that is supported by the .swf type of file.

If you are using a Flash file, you can use SizeWindow and PlaceWindow to control the size and placement of the background window that displays the Flash file.

For more information, see:

PlayMMedia
SizeWindow
PlaceWindow
Displaying a Background Window in InstallScript and InstallScript MSI Installations

Support for HTML Controls on Dialogs During InstallScript and InstallScript MSI Installations

InstallShield includes support for HTML controls on dialogs in InstallScript and InstallScript MSI projects. HTML controls enable you to use HTML markup for dialog controls. You can include on dialogs links to Web pages, installed HTML files, and HTML support files. If an end user clicks the hyperlink on the run-time dialog, you can have the HTML page open in an Internet browser, or you can trigger other behavior that you have defined through your InstallScript code. The HTML control lets you use any valid HTML markup, including styles to control their appearance.

The HTML control also lets you display the HTML content directly on a dialog if the content is an installed HTML file or HTML support file.

A new InstallScript function called CtrlGetUrlForLinkClicked is available. This function retrieves the URL for a link that an end user clicked.

For more information, see:

Using an HTML Control on a Dialog
CtrlGetUrlForLinkClicked
CtrlGetUrlForLinkClicked Example

Ability to Add Unsupported Languages to InstallScript Projects

The InstallShield Premier edition includes default run-time strings for InstallScript projects in 33 different languages. The InstallShield Premier edition also lets you use the New Language Wizard to add unsupported languages, beyond the built-in 33 languages, to InstallScript projects. Once you have added unsupported languages to an InstallScript project, you can use the String Editor view to provide translated strings for the unsupported languages. As an alternative, you can export a language’s string entries to a file, translate the string values in the file, and then import the translated file into your project. Previously, the New Language Wizard enabled you to add unsupported languages to only Basic MSI and InstallScript MSI projects.

For more information, see:

Run-Time Language Support in InstallShield
New Language Wizard
String Editor View

Ability to Specify Paths for Libraries to Which the InstallScript Compiler Should Link

The Compile/Link tab on the Settings dialog box has a new Additional Library Paths box that lets you specify the locations where the InstallScript compiler should search for InstallScript libraries (.obl files) that should be linked to your script. In addition, when you specify your custom libraries on this tab, you can now specify just the file name, without the full path. These changes enable you to move your libraries to different directories but still successfully compile your script without manually changing the path for libraries on the Compile/Link tab.

For more information, see Compile/Link Tab.

New FlexNet Connect 11.6 Redistributables Available

InstallShield includes support for FlexNet Connect 11.6 in Basic MSI and InstallScript MSI projects. Use the Update Notifications view in InstallShield to include one of the two FlexNet Connect 11.6 merge modules—one has the Common Software Manager, and the other does not. These merge modules replace the FlexNet Connect 11 merge modules.

DIFx 2.1.1 Support

InstallShield includes support for the latest version of Driver Install Frameworks for Applications (DIFx 2.1.1). This new version, which includes the latest binary files from Microsoft, is available for the following project types: Basic MSI, InstallScript, and InstallScript MSI.

Enhancements

InstallShield includes the following enhancements.

Usability Enhancements

Many of the views in InstallShield have been enhanced to improve productivity and usability. For example, several views contain new toolbars that make options easier to find. Some of the views that contain grids let you customize how the rows in a grid are organized. Searches are performed more quickly in the views that offer search capabilities. Following are examples of some of the highlights:

Direct Editor view—When you select a table in this view, a new toolbar is displayed. The toolbar has buttons that let you add, cut, copy, paste, find, and replace data in the table. This view also has support for dynamic searches—as you are typing a string in the search box, InstallShield hides all of the table records that do not contain it. When you are adding or editing a record, InstallShield displays help text for each field.
Property Manager view—This view contains a new toolbar that has buttons for performing tasks such as adding and deleting properties. This view also has support for dynamic searches—as you are typing a string in the search box, InstallShield hides all of the table records that do not contain it. The top of the view has a new group box area; you can drag and drop column headings onto this area to organize the rows in the view in a hierarchical format. You can now select multiple properties in this view (by using the mouse and the SHIFT or CTRL button) and then delete them all at once.
Redistributables view—The new toolbar and the new group box area in this view provide robust search and organizational functionality. You can drag and drop column headings onto the group box area to organize the list of redistributables in a hierarchical format. In addition, you can type a string in the toolbar’s search box, and InstallShield hides all of the redistributables that do not contain it.
Internet Information Services view—This view has been redesigned to look similar to IIS 7: the settings are now displayed in grids, instead of on tabs. The grids have buttons that let you sort the grid settings by category or alphabetically. When you select a setting in one of the grids in this view, InstallShield displays help information for that setting in the lower-right pane.
General Information view—All of the settings in this view are displayed in one grid, instead of as separate grids that are associated with nodes within this view. The settings are grouped into several categories to make it easy to find a particular setting. In addition, the grid has a button that lets you sort the grid settings by category or alphabetically. The string tables that were previously in this view have been moved to a new String Editor view.
Path Variables view—This view contains a new toolbar that has buttons for performing tasks such as adding and deleting path variables. This view also has support for dynamic searches—as you are typing a string in the search box, InstallShield hides all of the rows that do not contain it. The top of the view has a new group box area; you can drag and drop column headings onto this area to organize the rows in the view in a hierarchical format. You can now select multiple path variables in this view (by using the mouse and the SHIFT or CTRL button) and then delete them all at once.

In addition, the Output window, which is displayed when you are building a release, performing validation, or compiling script, has been enhanced. The Output window or its individual tabs can be docked to any side of the workspace in InstallShield, or they can be dragged to free-floating positions. If you drag the Output window or one of its tabs to the edge of the InstallShield interface, it becomes a docked window. If you drag the Output window or one of its tabs away from any of the edges of the InstallShield interface, it becomes undocked.

For more information, see the following:

Working with the Group Box Area in Various Views
Docking or Undocking the Output Window

Support for Specifying Action Progress Messages

To keep end users informed, installations commonly display text on the progress dialog to describe the installation’s current activity. This usually accompanies the progress bar as a means of installation status. As each standard action and custom action is encountered, a message about the action is displayed on the progress dialog. This may be especially useful for actions that take a long time to execute. The same action text is also written to the installation’s log file if one is created.

The Custom Actions and Sequences view has a new Action Text area that lets you specify action descriptions and details. This is available in the following project types: Basic MSI, InstallScript MSI, MSI Database, and Transform.

For more information, see:

Using Action Text
Specifying an Action Description and a Template for Action Data
Displaying Action Descriptions on the Progress Dialog
Displaying Action Data on the Progress Dialog

Ability to Detect Whether a 64-Bit System Allows 32-Bit IIS Applications to Be Run

At run time, you may need to have your installation check the Enable32bitAppOnWin64 property on systems that have IIS 6. Depending on the requirements for your product and the results of that check, you may want the installation to skip a particular component that contains a 32-bit IIS 6 application, or a 64-bit IIS application, for example, and proceed with the rest of the file transfer.

InstallShield includes a sample Windows Installer DLL file that detects how the Enable32bitAppOnWin64 property is set on a target system. You can add a custom action for this DLL to your project. If 32-bit applications are allowed, the Windows Installer property ISIIS6APPPOOLSUPPORTS32BIT is set to a value of 1; if they are not allowed, this property is not set. You can use this property in conditions to prevent or trigger certain behavior. For example, you can create a launch condition if you want the installation to exit if the ISIIS6APPPOOLSUPPORTS32BIT is set or not set.

This feature is available in the following project types: Basic MSI and InstallScript MSI.

For instructions on how to add the custom action to your project, see Considerations for Supporting IIS 6 on 64-Bit Platforms.

Ability to Detect Whether the IIS 6 Metabase Compatibility Feature Is Installed

At run time, you can have your installation detect if the IIS Metabase and IIS 6 Configuration Compatibility feature is installed on a target system, or if IIS 6 or earlier is installed. Depending on the requirements for your product and the results of that detection, you may want the installation to exit and display an error message.

For example, Web service extensions can be installed on systems that have IIS 6. On systems that have IIS 7, Web service extensions can be installed only if the IIS Metabase and IIS 6 Configuration Compatibility feature is installed. Thus, you might want to configure your installation to verify that IIS 6 is present or the IIS 6 compatibility feature is installed; if either of those conditions are false, the installation would exit and display an error message.

InstallShield includes a sample Windows Installer DLL file that detects whether the IIS Metabase and IIS 6 Configuration Compatibility feature is installed. You can add a custom action for this DLL to your project. If the IIS Metabase and IIS 6 Configuration Compatibility feature is installed, the Windows Installer property ISIISMETABASECOMPATPRESENT is set to a value of 1; if it is not installed, this property is not set. You can use this property in conditions to prevent or trigger certain behavior. For example, you can create a launch condition if you want the installation to exit if the ISIISMETABASECOMPATPRESENT is set or not set.

This feature is available in the following project types: Basic MSI and InstallScript MSI.

For instructions on how to add the custom action to your project, see Determining If a Target System Has IIS 6 or Earlier or the IIS 6 Metabase Compatibility Feature.

Ability to Associate a Namespace Prefix with an Attribute of an XML File’s Element

InstallShield now lets you add a namespace prefix to an attribute in the XML File Changes view. To do so, you can type the prefix, followed by a colon (:), in front of the attribute name. Previously, if an attribute contained a namespace prefix, the installation failed.

This enhancement applies to the following project types: Basic MSI, InstallScript, and InstallScript MSI.

For more information, see Adding a Namespace Prefix to an Attribute.

Ability to Specify Whether an XML File Should Be Formatted After Run-Time Changes

The Advanced tab for an XML file in the XML File Changes view has a new Format XML after changes check box that lets you specify whether you want the XML file to be formatted after the run-time changes are made to the file. When formatting the file, the installation adds indentations to the file and replaces empty-element tags with start tags and end tags. This may cause problems for web.config files, so you may want to clear this check box for your project.

This enhancement applies to the following project types: Basic MSI, InstallScript, and InstallScript MSI.

For more information, see Advanced Tab for an XML File.

Predefined System Searches for the .NET Framework and Internet Explorer 8

InstallShield has two new predefined system searches:

Microsoft .NET Framework 3.5 SP1
Internet Explorer 8

If your installation requires any of these, you can use the System Search view or the Installation Requirements page in the Project Assistant to add these system searches to your project. When end users launch your installation, Windows Installer checks the target system to see if the requirements are met; if they are not met, the installation displays the error message that is defined for the system search.

This enhancement applies to Basic MSI and InstallScript MSI projects.

Custom Properties Are Now Listed in Condition Builder

The Properties list on the Condition Builder dialog box now includes properties that are added in the Property Manager view. It also includes properties from searches that are created through the System Search Wizard. Therefore, when you are creating or editing a condition in InstallShield, you can now select your own custom properties without having to manually type them.

This enhancement applies to the following project types: Basic MSI, InstallScript MSI, Merge Module, and Transform.

Ability to Specify a Maximum Service Pack Number and 64-Bit Locations for InstallShield Prerequisite Conditions

The Prerequisite Condition dialog box, which is displayed when you are adding or modifying a condition for an InstallShield prerequisite in the InstallShield Prerequisite Editor, has a new field that lets you specify the maximum service pack number. Previously, it was possible to specify a minimum service pack number, but not a maximum service pack number.

In addition, the Prerequisite Condition dialog box now includes the following 64-bit locations in the box that is displayed when you are specifying file-related conditions: [CommonFiles64Folder], [ProgramFiles64Folder], and [System64Folder]. You can select any of these properties if you want to use 64-bit locations in the file path. At run time, the installation checks these 64-bit locations if the target system is 64 bit. For 32-bit systems, the installation checks the 32-bit location equivalents.

For more information, see Prerequisite Condition Dialog Box.

Enhancements to MSBuild Support

The InstallShield task for MSBuild includes several new parameters:

RunMsiValidator—Use this parameter to specify the .cub file that you want to use for validation. This parameter is exposed as the ItemGroup InstallShieldMsiValidators when the default targets file is used.
PatchConfiguration—Use this parameter to specify the patch configuration that you want to build through MSBuild. This parameter is exposed as the property InstallShieldPatchConfiguration when the default targets file is used.
PathVariables—Use this parameter to override the value of a path variable. This parameter is exposed as the ItemGroup InstallShieldPathVariableOverrides when the default targets file is used.
PreprocessorDefines—Use this parameter to specify preprocessor definitions for compiling InstallScript. This parameter is exposed as the ItemGroup InstallShieldPreprocessorDefines when the default targets file is used.

For more information, see Microsoft Build Engine (MSBuild).

Automation Interface Enhancements

OSFilter Property Values for Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, and Windows Server 2003

The following constants are now available for use with the OSFilter member of the ISWiComponent and ISWiRelease objects in the automation interface:

eosWin7 (33554432)—This is for Windows 7 and Windows Server 2008 R2.
eosWinVista (16777216)—This is for Windows Vista and Windows Server 2008.
eosWinServer2003 (8388608)

In addition, the value for the eosAll constant is now 64028880; previously, it was 5308624.

The OSFilter member applies to the ISWiComponent object in InstallScript, InstallScript MSI, and InstallScript Object projects. The OSFilter member applies to the ISWiRelease object in InstallScript and InstallScript Object projects.

For more information, see the following:

ISWiComponent Object
ISWiRelease Object

New IsPlatformSelected Property Values

The list of available property values for the IsPlatformSelected property of the ISWiComponent object has been expanded. This property now has values for 32-bit, 64-bit Itanium, AMD64, and Windows Server 2003 R2. This applies to the following project types: InstallScript and InstallScript Object.

Note that some of the values for the existing constants have changed. To learn the new values, see ISWiComponent Object.

New AddSQLScriptEx Method for Adding a SQL Script to a Connection

The AddSQLScriptEx method has been added to the ISWiSQLConnection object. Use this method to add an ISSQLScriptFile entry and generate a valid name from the passed string. The method ensures that the names of the entries in the ISSQLScriptFile table are unique and less than 47 characters in length.

New RunOnLogon and Condition Properties for the ISWiSQLScript Object

The read-write RunOnLogon property has been added to the ISWiSQLScript object. This property corresponds with the Run Script During Login check box on the Runtime tab for a SQL script in the SQL Scripts view.

The read-write Condition property has also been added to the ISWiSQLScript object. This property specifies the condition that is evaluated at run time to determine whether the SQL script should be run during installation or uninstallation. If the condition evaluates to true, the script is run. This property is available for the following project types: Basic MSI and InstallScript MSI.

New DisplayName Property for the ISWiUpgradeTableEntry Object

The read-write DisplayName property has been added to the ISWiUpgradeTableEntry object. This property gets or sets the name of an upgrade entry. This is the internal name that is displayed for an upgrade item in the Upgrades view. This property is available for the following project types: Basic MSI and InstallScript MSI.

Enhancements to the InstallScript Language for Operating Systems

The following structure members and predefined constants were added to the InstallScript language:

SYSINFO.WINNT.bWin7_Server2008R2—This is a new SYSINFO structure member. If the operating system is Windows 7 or Windows Server 2008 R2, this value is TRUE.
SYSINFO.bWinServer2003R2—This is a new SYSINFO structure member. If the operating system is Windows Server 2003 R2, this value is TRUE. (Note that the value of SYSINFO.WINNT.bWinServer2003 is also TRUE on this operating system.)
ISOSL_WIN7_SERVER2008R2—This is a new predefined constant that is available for use with the FeatureFilterOS function and the SYSINFO structure variable. It indicates that the target system is running Windows 7 or Windows Server 2008 R2.
ISOS_ST_SERVER2003_R2—This is a new operating system suite that is available for use with the FeatureFilterOS function and the SYSINFO structure variable. It indicates that the target system is running Windows Server 2003 R2.

In addition, some items were renamed:

The SYSINFO.WINNT.bWinVista structure member does not distinguish between Windows Vista or Windows Server 2008. Therefore, the new member SYSINFO.WINNT.bWinVista_Server2008 is now available. The old alias is still available, but the new one may be preferred for clarity in code.
The ISOSL_WINVISTA predefined constant does not distinguish between Windows Vista or Windows Server 2008. Therefore, the new constant ISOSL_WINVISTA_SERVER2008 is now available. The old alias is still available, but the new one may be preferred for clarity in code.

For more information, see FeatureFilterOS function and the SYSINFO structure variable.

Ability to Easily Override InstallScript Dialog Source Code in the InstallScript View

The event category drop-down list in the InstallScript view has a new Dialog Source option. If you select this option, the event handler drop-down list shows all of the built-in InstallScript dialogs. You can select any dialog in this list to modify its code.

This functionality applies to the following project types: InstallScript, InstallScript MSI, and InstallScript Object.

For information about built-in InstallScript dialog functions that are available when you select the Dialog Source option, see Dialog Functions.

Changes to the Major and Minor Version Registry Entries for the Uninstall Key of InstallScript Installations

InstallScript installations now create VersionMajor and VersionMinor registry values in the Uninstall key; the names of these values now match the entries that are created during Basic MSI and InstallScript MSI installations. This applies to new installations that are created in InstallShield 2010, as well as installations that are upgraded from InstallShield 2009 or earlier. Previously, in InstallShield 2009 and earlier, the names of the values that InstallScript installations created were MajorVersion and MinorVersion; these are no longer created.

In order to use the new registry values, the values of the following InstallScript constants have been changed:

REGDB_VALUENAME_UNINSTALL_MAJORVERSION is now VersionMajor instead of MajorVersion.
REGDB_VALUENAME_UNINSTALL_MINORVERSION is now VersionMinor instead of MinorVersion.

When the MaintenanceStart function is called, it creates the updated value names in the registry. By default, it also deletes the old value names if they exist. If you do not want the old value names to be deleted from target systems, you can use the new REGDB_OPTIONS option called REGDB_OPTION_NO_DELETE_OLD_MAJMIN_VERSION.

If REGDB_UNINSTALL_MAJOR_VERSION or REGDB_UNINSTALL_MINOR_VERSION is used with the RegDBGetItem function, RegDBGetItem first checks for the new value; if the new value is found, the function returns the value data from the new value. If the new value is not found, the function automatically checks for the old value; if the old value is found, the function returns the value data from the old value.

To provide backwards compatibility, the following new constants are available:

REGDB_UNINSTALL_MAJOR_VERSION_OLD
REGDB_UNINSTALL_MINOR_VERSION_OLD

You can specify these constants with the RegDBGetItem, RegDBSetItem, and RegDBDeleteItem functions to get, set, and delete the old values.

The following new string constants are also available:

REGDB_VALUENAME_UNINSTALL_MAJORVERSION_OLD is defined as MajorVersion.
REGDB_VALUENAME_UNINSTALL_MINORVERSION_OLD is defined as MinorVersion.

For more information, see the following:

REGDB_VALUENAME_UNINSTALL_MAJORVERSION
REGDB_VALUENAME_UNINSTALL_MAJORVERSION_OLD
REGDB_VALUENAME_UNINSTALL_MINORVERSION
REGDB_VALUENAME_UNINSTALL_MINORVERSION_OLD
REGDB_UNINSTALL_MAJOR_VERSION_OLD
REGDB_UNINSTALL_MINOR_VERSION_OLD
REGDB_OPTIONS
RegDBSetItem
RegDBGetItem
RegDBDeleteItem

New CtrlGetDlgItem Function for Retrieving the Window Handle of a Control in a Custom InstallScript Dialog

A new InstallScript function called CtrlGetDlgItem is now available. The CtrlGetDlgItem function retrieves the window handle of a control in a custom dialog. CtrlGetDlgItem is similar to the Windows API GetDlgItem, except that with CtrlGetDlgItem, you can specify the InstallScript dialog name instead of the dialog’s window handle. For more information, see CtrlGetDlgItem.

New InstallScript Constant for Passing a Null Pointer for an InstallScript String to an External DLL Function

You can use the IS_NULLSTR_PTR variable to pass a null pointer to an external DLL function or Windows API through a parameter that has been prototyped as an InstallScript string. This functionality works for byval string, byref string, wstring, and binary data types. For more information, see IS_NULLSTR_PTR.

New StrConvertSizeUnit Function for Converting an InstallScript Size Unit Constant to a Display String

A new InstallScript function called StrConvertSizeUnit is now available. The StrConvertSizeUnit function returns the appropriate display string for the InstallScript size unit constant that is specified.For more information, see StrConvertSizeUnit.

New StrTrim Function for Removing Leading and Trailing Spaces and Tabs from a String

A new InstallScript function called StrTrim is now available. The StrTrim function removes the leading and trailing spaces and tabs from a string. For more information, see StrTrim.

New SdLicense* Dialog Functions to Supersede Existing SdLicense* Dialog Functions

Two new InstallScript dialog functions—SdLicenseEx and SdLicense2Ex—are now available. They both display a dialog that contains a license agreement in a multi-line edit field. The license agreement can be stored in a text file (.txt) or a rich text file (.rtf).

SdLicenseEx displays a dialog that shows a question in a static text field. The end user responds by clicking the Yes or No button.

SdLicenseEx supersedes SdLicense and SdLicenseRtf.

SdLicense2Ex displays a dialog that has two radio buttons (one for accepting the terms of the license agreement, and one for not accepting them). The Next button becomes enabled when the end user clicks the appropriate button to accept the terms of the license agreement.

SdLicense2Ex supersedes SdLicense2 and SdLicense2Rtf.

New ListFindKeyValueString Function for Searching Lists of Key-Value Pairs

A new InstallScript function called ListFindKeyValueString is now available. The ListFindKeyValueString function searches a string or number list for a specified value. It returns a value from an additional list that corresponds with the position of the found string in the first list. This enables you to search lists of key-value pairs for a particular key and retrieve the corresponding value.

For more information, see ListFindKeyValueString.

New InstallScript Code Examples

The InstallShield documentation now has sample code for the following InstallScript functions:

AdminAskPath
CharReplace
FormatMessage
LogReadCustomNumber
LogReadCustomString
LogWriteCustomNumber
LogWriteCustomString

You can copy this code from the InstallShield documentation, paste it into your InstallScript code, and customize it as necessary.

Expanded InstallScript Cabinet File Viewer

The Cabinet File Viewer now provides additional information about .cab files for InstallScript projects.

For features that were built by InstallShield, the viewer has the following new fields: Password Protected, Split Before, Split After, Split Not Allowed, and Split Before Not Allowed, and Image Index.
For InstallScript Objects that are included in the InstallScript installation, the viewer has a new Object version field.
For components, the viewer has the following new fields: Encrypted, Data as Files, and .NET Assembly.
For media, the viewer has the following new field: Executable File.

See Also