Installshield Product Code

InstallShield Product Code

An InstallShield Product Code is a unique identifier used by Windows Installer-based setup packages to represent a specific product. It is a GUID (Globally Unique Identifier) that the Windows Installer and authoring tools like InstallShield use to track installed applications, manage upgrades, detect product presence, and ensure correct maintenance and removal operations.

Purpose and role

Step-by-Step for a Major Upgrade:

  1. Keep the Upgrade Code identical to previous versions.
  2. Increment the Product Version (e.g., from 1.0.0 to 2.0.0).
  3. Change the Product Code to a new GUID.
  4. In the Upgrades view, add a new upgrade item.
  5. Under Upgrade Criteria, select "Detect and remove older versions."
  6. Set the Maximum Version to your new version number (exclusive or inclusive as needed).

When a user runs the new MSI, Windows Installer sees: "Upgrade Code matches an existing product, but Product Code is different." It then uninstalls the old product (using its old Product Code) and installs the new product. installshield product code


Registry and filesystem locations

DO Change the Product Code (Major Upgrades)

If you are releasing a Major Upgrade (e.g., version 1.0 to 2.0, or significant architectural changes), you must generate a new Product Code. InstallShield Product Code An InstallShield Product Code is

Best Practice for CI/CD:

Keep your Upgrade Code constant. Store it as a project setting. Use a build script to: Unique product identity: The Product Code distinguishes one

  1. Read the current Product Code from version control.
  2. Generate a new Product Code if the version number has changed (SemVer logic).
  3. Inject the new GUID using a pre-build PowerShell script.

Key Points About Product Code

| Aspect | Detail | |--------|--------| | Purpose | Identifies the product for Windows Installer | | Change required? | For major upgrades only (not minor updates or patches) | | Location in IDE | General Information > Product Code | | Related codes | Upgrade Code (permanent, identifies product family)
Package Code (changes with every build) |

4. How to Manage Product Codes in InstallShield