Code | Installshield Product
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.
| Your change | Change Product Code? | Upgrade type | |------------|---------------------|---------------| | New major version (v2.0) | ✅ Yes | Major upgrade | | New minor version (v1.1) | ❌ No | Minor upgrade / patch | | Hotfix (same version) | ❌ No | Patch (.msp) | | Product rename | ✅ Yes | Major upgrade | | Add/remove features | ❌ No (reinstall) | Not an upgrade | | Different edition (Pro vs Enterprise) | ✅ Yes | Side-by-side possible |
Always check the Upgrade table in InstallShield’s Direct Editor. Ensure that:
Definition: A minor update is a reinstall of the same product with some files changed, but the core identity remains the same.
When to do it:
How to implement: Keep the same Product Code. Increment the product version (e.g., 1.0.1 to 1.0.2). Use InstallShield's "Patch Design" view to create a .MSP file.
The InstallShield Product Code is far more than a random string of characters. It is the identity of your product version in the eyes of the Windows operating system. Mastering its use separates professional setup developers from amateurs who cause support nightmares.
Key Takeaways:
By following the best practices outlined in this guide, you will avoid the common pitfalls of double installations, failed patches, and irremovable software entries. Treat your Product Code with the same rigor as your source code—store it in version control, document its changes, and audit it before every build.
Now go forth and build flawless InstallShield setups.
Further Reading:
Last updated: October 2023. This guide applies to InstallShield 2020 and later.
The InstallShield Product Code is a unique identifier, formatted as a GUID (Globally Unique Identifier), that acts as the primary "fingerprint" for a specific version of a software product on a Windows machine. Core Functionality
The Product Code is central to how Windows Installer (MSI) manages software. It allows the operating system to differentiate between various software packages, ensuring that updates, repairs, and uninstalls target the correct application.
Version Differentiation: If two versions of a product have the same Product Code, Windows treats them as the same entity. Changes to the Product Code are typically required for "Major Upgrades" to allow the installer to recognize the new version as a replacement for the old one. installshield product code
Maintenance Operations: When you trigger an "Uninstall" or "Repair" from the Control Panel, Windows uses this code to locate the correct installation database. How to Find a Product Code
If you are an administrator or a user looking for the code of an already-installed program, you can find it through several methods:
Registry Editor: Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Search the subkeys (which are themselves GUIDs) for the DisplayName of your software; the subkey name is often the Product Code.
PowerShell: Run a command like Get-WmiObject -Class Win32_Product to list all installed MSI-based products and their identifying codes.
InstallShield Designer: Developers can find or generate this code in the General Information view of the InstallShield project. Key Identification Codes
It is often confused with the Upgrade Code, but they serve different purposes: Change Frequency Product Code Identifies a specific release of a product. Changes with every major version. Upgrade Code Identifies a family of products across all versions. Stays the same throughout the product's life. Package Code Identifies a specific MSI file. Changes every time the installer is built. Administrative Usage
For IT professionals, the Product Code is essential for "silent" or automated tasks. You can use it with the standard Windows Installer command-line tool, msiexec.exe, to manage software remotely without needing the original installer file: Uninstalling: msiexec /x YOUR-PRODUCT-CODE-HERE /qn. Repairing: msiexec /f YOUR-PRODUCT-CODE-HERE. Add a Custom Merge Module to an InstallShield Project An InstallShield Product Code is a unique identifier
This feature automates the generation, validation, and management of the ProductCode GUID property within an InstallShield project. It is designed to prevent common deployment failures caused by improper GUID handling during major upgrades.
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.
To avoid support calls, failed upgrades, and confused users, follow these three commandments:
Thou Shalt Change the Product Code for Major Upgrades.
Thou Shalt Test the Uninstall Path.
The InstallShield Product Code is not just a technical checkbox—it is a contract between your installer and the Windows operating system. Treat it with respect, document every change, and your users will enjoy seamless, professional upgrade experiences.