InstallShield 2016
Why ISSetAllUsers Appears in Your Installation Package’s Sequence
If you have entered one or more records in the Upgrade table for your installation (through the Upgrades view), InstallShield inserts a DLL custom action called ISSetAllUsers in both the User Interface and Execute portions of the installation sequence. When your product is installed as an upgrade, the ISSetAllUsers custom action checks the value of the ALLUSERS property in the installed version.
The ALLUSERS property is indicated in the Customer Information dialog (for Basic MSI projects) and in either the SdCustomerInformation or SdCustomerInformationEx dialog (for InstallScript MSI projects) by the end user during the initial installation. The ISSetAllUsers custom action compares the value in the installed version to the value in the new version. If the values differ, then ISSetAllUsers sets the ALLUSERS property of the new version to match that of the installed version.
Note that for upgrades, the ALLUSERS property is configurable only through a custom action.
The new installation’s ALLUSERS property must match the installed version’s property in order for the FindRelatedProducts action to succeed for the upgrade installation. In addition, if the previous version is installed for only one particular user and the upgrade is installed for all users, the resulting installation is corrupted and might not uninstall properly. ISSetAllUsers eliminates these problems by resetting the ALLUSERS property.
How ISSetAllUsers Works
The following example illustrates how the ISSetAllUsers custom action works:
1. | My Application 1.0 is installed with the ALLUSERS property set to 1 (the end user selected Install for All Users in the end-user dialog during installation). |
2. | My Application 2.0 is authored as an upgrade to version 1.0 and has an entry in the Upgrade table to upgrade version 1.0. |
3. | The end user installs version 2.0 on the target system as an upgrade. |
4. | During the installation, ISSetAllUsers checks the value of the ALLUSERS property in the installed version and compares it to the new version’s property by doing the following: |
a. | ISSetAllUsers iterates through each entry in the Upgrade table of version 2.0. |
b. | For every upgrade code in the Upgrade table, ISSetAllUsers searches for the related products on the target system. |
c. | If the version and language constraints in the Upgrade table match one of the installed products (found in step 4b), ISSetAllUsers checks the ALLUSERS property of the installed version. |
d. | If the value of ALLUSERS for the installed version differs from that of the new version, ISSetAllUsers sets the new installation’s ALLUSERS property to this value. |
Note • If no matching product is installed on the target system, ISSetAllUsers does nothing.
See Also
InstallShield 2016 Help LibraryAugust 2016 |
Copyright Information | Flexera Software |