Skip to main content Link Search Menu Expand Document Warning Info Success Info (external link) Copy Copied Following system colour scheme Selected dark colour scheme Selected light colour scheme Telegram GitHub Edit

Installshield Product — Code

Scenario: A developer releases version 1.0 of "AppX".

Scenario: Developer releases version 2.0 of "AppX" (Major Upgrade).

Understanding the InstallShield Product Code If you’ve ever managed a Windows deployment or wrestled with a tricky uninstallation, you’ve likely encountered the InstallShield Product Code. It is one of the most critical identifiers in the Windows Installer (MSI) framework, serving as the unique "fingerprint" for a specific release of your software.

Here is everything you need to know about what it is, why it matters, and how to manage it effectively. What is an InstallShield Product Code?

The ProductCode is a GUID (Globally Unique Identifier) used by the Windows Installer engine to identify a particular product or application version. While the human eye sees "MyApplication v1.0," the operating system sees 12345678-ABCD-1234-ABCD-1234567890AB.

In InstallShield, this code is set at the project level. It ensures that the system can distinguish your app from every other piece of software installed on the machine. Product Code vs. Upgrade Code

It is common to confuse these two, but they serve very different roles:

Product Code: Unique to a specific "edition" or version of the program.

Upgrade Code: Remains the same across all versions of a product. It acts as the "family name" that allows a new installer to find and replace an older version. Why the Product Code Matters 1. Handling Maintenance and Uninstalls installshield product code

When you run a command like msiexec /x ProductCode, Windows looks up that specific GUID in its registry to find the cached .msi file and execute the removal. Without the correct code, you cannot programmatically uninstall or repair a specific build. 2. Preventing "Double Installations"

If you change the Product Code but keep the same installation path, Windows may treat the new version as a completely separate product. This results in two entries in "Add/Remove Programs," leading to file conflicts and registry bloat. 3. Patching and Updates

For "Small Updates" or "Minor Upgrades," the Product Code must remain the same. For a "Major Upgrade" (where the old version is completely uninstalled first), the Product Code must change. How to Find Your Product Code in InstallShield

If you are the developer or packaging engineer, you can find (or change) the code easily within the InstallShield interface: Open your InstallShield project (.ism file).

Navigate to the Installation Information section in the left-hand pane. Click on General Information.

Locate the Product Code property in the main window. It will be listed under the "Product Properties" group. How to Find the Product Code of an Installed App

If you are a system administrator trying to automate a deployment, you can find the Product Code of an already installed app using PowerShell: powershell

get-wmiobject Win32_Product | Format-Table Name, IdentifyingNumber Use code with caution. The IdentifyingNumber column is your Product Code. Best Practices for Managing Product Codes Scenario: A developer releases version 1

Automation is Key: In InstallShield, you can set the Product Code to * or use the "Generate New GUID" button. For Major Upgrades, always ensure a new GUID is generated.

Keep Records: Maintain a "Build Map" that logs which Product Code corresponds to which version number. This is invaluable for troubleshooting customer logs.

Consistency: Never change a Product Code mid-release. Once a version is "in the wild," that GUID is locked to that version forever.

The InstallShield Product Code is the backbone of your installer’s identity. By understanding when to keep it and when to change it, you ensure a seamless experience for your users—from the first click of "Install" to the final "Uninstall."

InstallShield Product Code is a unique Globally Unique Identifier (GUID)

that serves as the principal identity of a software product in the Windows Installer (MSI) framework. Stack Overflow Core Definition and Purpose

The Product Code is a 128-bit hexadecimal string enclosed in curly braces (e.g., 50EFC3E0-8AF8-11D4-94C7-00E09876D9C4 ). Its primary functions include: Flexera Community Uniqueness

: It distinguishes one software application from another. Windows Installer treats two products with different Product Codes as unrelated, even if they share the same name. Installation Logic Scenario: Developer releases version 2

: At runtime, the installer checks this code to determine if the product is already on the machine. Conflict Prevention

: Windows Installer prevents installing two different MSI packages with the same Product Code on the same computer, triggering an error that "Another version of this product is already installed". Comparisons with Related GUIDs

To understand the Product Code, it must be differentiated from other standard identifiers used in InstallShield projects Identifier Frequency of Change Product Code Identifies a specific version/flavor of a product. Change for major upgrades. Package Code Identifies a specific file/build. Change for every single build Upgrade Code Identifies the general "product family." Keep the same across all versions to allow upgrades. When to Change the Product Code

Maintaining a Product Code is critical for maintenance (patches), while changing it is necessary for significant transitions. Change the Product Code when:


Result: You write a custom action that checks for OLD-GUID. When you change the Product Code, your script breaks. Fix: Use property references (e.g., [ProductCode]) in InstallScript or use the MSI API to retrieve the current product code dynamically.


Definition: A major upgrade is a complete replacement of the older product. It typically involves a new Product Code and often a new directory structure, component IDs, or registry layout.

When to do it:

How to implement in InstallShield: Go to Project > InstallShield MSI Project > General Information > Product Code and click "New GUID." Then navigate to Media > Releases > Upgrades and create a new upgrade item. Set "Detected product code" to the old version's Product Code.

When you create a new project, InstallShield automatically generates a random Product Code for you. This is a one-time convenience, not a long-term solution. Many developers mistakenly assume that InstallShield will manage this code forever. It will not. You are responsible for updating it when required.