Home > Blogs > VMware ThinApp Blog


Upgrade a deployed ThinApp package with the help of MSI.

It is mentioned in our manual but since I am getting a lot of question regarding this subject I thought I might as well post the answer here.

When it comes to using MSI and usage of a deployment tool (ESD) to update a ThinApped application is there three parameters being used. You find them under [BuildOptions] in the MSI Parameters section of package.ini.

MSIProductVersion=1.0
The MSIProductVersion parameter specifies a product version number for the MSI database to
facilitate version control. This version number is unrelated to the application version or the ThinApp version.

ThinApp assigns an initial version of 1.0. This version appears in the properties of the database.
When you deploy a package to a machine that already has the package installed, Windows Installer
checks the version numbers and blocks the installation of an older version over an updated version.
In this situation, you must uninstall the new version.

Example
You can change the value of the MSIProductVersion parameter when you change the MSI package. A value of 2.0 causes ThinApp to uninstall a 1.0 version of the package and install the 2.0 version of the package

MSIProductCode={xxxxxxxxxxxxxxxxxxxxxxx}
The MSIProductCode parameter specifies a product code for the MSI database. Windows Installer
uses the code to identify MSI packages.

MSIUpgradeCode={xxxxxxxxxxxxxxxxxxxxxxx}
The MSIUpgradeCode parameter specifies a code for the MSI database that facilitates updates. When two packages, such as the version 1.0 package and the version 2.0 package, have the same upgrade code, the MSI installer detects this link, uninstalls the earlier package, and installs the updated
package.
The capture process generates a random upgrade code based on the inventory name. To ensure that the MSI database versions have the same upgrade code, keep the same inventory name across
versions of the MSI wrapper.

 

Here is an example of the settings in two different package.ini . One is Mozilla Firefox version 2 and the other is Mozilla Firefox 3. Running the Mozilla Firefox 3 MSI file will uninstall Mozilla Firefox 2 and then install Mozilla Firefox 3 on the client. Notice that MSIUpgradeCode are the same in both files.

Mozilla Firefox 2
[BuildOptions]
;——– MSI Parameters ———-
;Enable MSIFilename if you want to generate a Windows Installer package.
MSIFilename=Mozilla Firefox.msi
MSIProductVersion=1.0
MSIProductCode={EB62260C-BFC4-E464-B849-6E37E850F0DB}
MSIUpgradeCode={F2854AE8-0BB1-AF13-3814-C37D90F7E858}

Mozilla Firefox 3
[BuildOptions]
;——– MSI Parameters ———-
;Enable MSIFilename if you want to generate a Windows Installer package.
MSIFilename=Mozilla Firefox.msi
MSIProductVersion=2.0
MSIProductCode={9734478F-7E8F-4901-9CC7-84D5B733DE60}
MSIUpgradeCode={F2854AE8-0BB1-AF13-3814-C37D90F7E858}

This entry was posted in MSI on by .
Peter Bjork

About Peter Bjork

Peter Bjork is a Senior Staff EUC Architect at VMware EUC Technical Marketing. Peter came to VMware with the acquisition of Thinstall. He is the author of the books “VMware ThinApp 4.7 Essentials” and "VMware Horizon Workspace Essentials". Peter lives in Sweden with his wife and two kids. You can follow Peter on Twitter: @thepeb