The new (if you still can call it new) application model in Configuration Manager 2012 has a couple of nice features, but from reading about it is it not always clear how it exactly works. In this blog I like to discuss the Dependency, Supersendence options and what happens if a dependency is superseded.
Consider the following scenario:
I have created the following applications 7-Zip, Adobe Reader X and Adobe Reader XI. In the 7-Zip application I have set Adobe Reader X as a dependency. With this setup I will go through the following steps:
- Install 7-Zip
- Adobe Reader X (dependency of 7-Zip) will be superseded by Adobe Reader XI
After the 2 steps I will bring my VM back to the starting stage and execute the last step:
- Install 7-Zip again with the dependency that has been superseded
In the last step I want to find out if 7-Zip will be installed with Adobe Reader X or with Adobe Reader XI that supersedes Adobe Reader X.
Ok, I have prepared all the applications that will be used in the test and checked if they all install properly.
The VM is a clean Windows 8 machine and before I start the test I have made a snapshot so I can get back to this stage after finishing the first 2 steps.
From the Application Catalog I start the installation of 7-Zip and the result should be that the dependency Adobe Reader X will be installed as well. I start the install from the Application Catalog, because the application is deployed to a user collection. Below a picture of the Application Catalog.
I can see in Software Center that 2 remaining components will be installed (see picture below) and that tells me that 7-Zip and its dependency Adobe Reader X will be installed.
Indeed this is the case, so far so good! The next step is to use supersedence on the Adobe Reader X application. To make this possible I should create the supersedence in the application that will supersede Adobe Reader X, in my case Adobe Reader XI. I add the supersedence to Adobe Reader XI, see picture below.
Sepersedence can be added by opening the properties of the application and navigate to the Supersedence tab. You can see in the picture the old deployment type and the new deployment type, also you can check the box for uninstall. In this case I choose the Adobe Reader XI msi deployment type, check the uninstall box and click OK. In Software Center, after the policies on the workstation have been reset, I can see that the supersedence works…. see picture below
As you can see Adobe Reader XI past due – will be updated. I force the install to speed up the testing so step 2 will be finished. On my workstation I go back to the previous snapshot, to go back to my starting point for my final test: Install 7-Zip again with the dependency that has been superseded.
When I check the dependency in the 7-Zip application nothing has changed, although Adobe Reader X has been superseded, this has no effect on the dependency in 7-Zip (still Adobe Reader X). I start the installation of 7-Zip and when the application is installed, 7-Zip and Adobe Reader X will be installed. After a policy refresh you will see that Adobe Reader X is past due and will be updated. This will indeed happen, but even though Adobe Reader X has been superseded by Adobe Reader XI, Configuration Manager will still first install the dependency in the application (in my case 7-Zip).
Is this a bad thing? To some people it will be, others will be ok with it. This is obvious by design and I think related to Application Lifecycle Management. Also the main application in my example 7-Zip has a relation with Adobe Reader X and not with Adobe Reader XI, so logical that 7-Zip doesn’t know about the supersedence of Adobe Reader X.
Maybe this will be automatically handled in a future version, but until that time you will need to replace dependencies with the new version when they are superseded. Basically is comes down to doing the administration of your applications!