There are several methods to uninstall the existing older versions of an application e.g. Script, MSI upgrade table, SCCM deployment conditions. We are here discussing the method using Upgrade table. Upgrade table can be used effectively to detect and uninstall the previous versions of a MSI based application provided the upgrade code is known. Here is an example on populating Upgrade Table: Locate the U pgradeCode in Property Manager . Remember this could either be same or different in previous version and if it is different then grab the code from previous version. Go to the Upgrade Table in Direct Editor . Copy the upgrade code to its column. Populate the Version columns based on requirement (consider all the digits as per previous MSI versions). Attribute column needs to be configured with appropriate bit flag for corresponding upgrade behavior. Refer to Upgrade Table to calculate the proper bit flag. In example, 768 is the sum of 256+512 which means, det
In previous parts of this series we looked at the App-V 5.0 package format, how it sits on our client OS in the file system cache and how the registry works. So that’s all well and good but what about when about when users make customisations to packages, how do we handle state changes? There are two types of changes that can be made to our packages, file based and registry based. Let’s take a look at how they are both handled in App-V 5.0. Registry In Part 3 of this series we really went behind the scenes of how the registry hangs together both from a native and virtual perspective for our App-V packages. So what happens when we make a customisation to an application that makes a registry based change? I’m going to customise Paint.NET above by hiding the floating windows Tools, Colors, History and Layers. This change is obviously retained every time I launch Paint.NET thereof as a customisation for the user. Let’s take a look at where in the registry those changes get