If you have been working with app management for more than a few days, you have probably met the need for having a dependency installed before your main app could be installed. You either have a app the requires for instance Java or some Visual C++ Redistributable. Working with ConfigMgr we have many options for making sure apps are installed in a specific order so that our dependencies are always installed before we install our main application. Within Intune there has been no way for us to define a order of when our required apps would be installed. If we where to require both or main app and our dependency to be installed for a user or a device, we couldn’t define any order for it.
With App dependencies in Intune, we can now define our own strict order on how all dependencies are installed before our main app is installed. There is a maximum of 100 dependencies including the main app itself, but that should be more than sufficient for most needs. A Win32 app dependency needs to be another Win32 app. It does not support depending on other app types (single MSI LOB apps or Store Apps).
So to get started we need to prosess all our dependencies with the Microsoft Intune Win32 App Packaging Tool. You can read more about this in Maurice’s post here: Deploy Win32 Applications with Microsoft Intune. So for now I assume that you have your software uploaded as Win32 apps in Intune and are ready to build your dependency logic. I will go through a scenario where I have a very special LOB app that are dependent on a lot of other software before it can be installed and function as needed for my end users. I recommend you to draw up your dependencies and the order before you start configuring in Intune:
When we have the order figured out I recommend you to start on the top of your chart. Start with your main app and its direct dependencies.
In this blogpost example I have a app called LOB APP 001, this app has dependencies for Java(A), VisualC++ Redists (B) and .Net Framework 4.8 (C) . For my VisualC++ Redist I need a total of 4 different redistributable installed and I do want them in a defined order.
Setting up the dependencies
To be able to setup the dependencies for my main LOB app, both the App itself and the dependencies needs to be ready in Intune. So assuming that is in place let us start with setting up the first dependencies. In this example I have a defined order for the Dependency group B, so I will start with defining that first before I add the dependencies to the main app. I want my Visual C++ redists to be installed in the following order:
- VisualCRedist 2013×86
- VisualCRedist 2013×64
- VisualCRedist 2019×86
- VisualCRedist 2019×64
So I start with opening up VisualCRedist 2019×64 in Intune – Click on Dependencies and define that it is dependent on VisualCRedist 2019×86
Click on Add
Select your dependency – click on Select on the bottom.
Make sure it is set to Automatically install = Yes and Click on Save.
Now we repeat the process for both VisualCRedist 2019×86 and VisualCRedist 2013×64 so that we end up with the correct order. If we make a mistake that turns into a circular dependency condition, we will get an error message telling us exactly that.
Now if we have done this correctly we could open up VisualCRedist 2019×64 and have a look at the Dependency Viewer.
Now – if this is all correctly ordered. Let us circle back to our main Application. Add in our other 2 dependencies (Java and .NetFramework) so that our setup is complete. Just follow the same process as earlier.
The order here does not decide the order between my dependencies. If you need to have a specific order, make sure you make a chain like I did with VisualC+ Redists.
If we take a look at the Dependency viewer of our main app, it should look something like this:
If you take a look at this setup, either VCRedist2013x86 or .NetFramework 4.8 or Java RE will be installed first. What we do now is that all the VCRedist is installed in this order, and that all these apps are installed before our Main App is being installed on our machine.
Now that our app with all dependencies are ready, we can deploy our main application. Do not assign the dependencies, just assign the main application.
For demo purposes I am assigning this app as Available for All Users and Show all toast notification. Remember that what we define here will apply to all the dependencies as well. So we should be getting a lot of toast notifications.
Now if we take a look at the local log file we will also find clearly that the VCRedist Dependencies where installed in the correct order if we do some filtering:
Now finally lets go back to the Intune Console to verify the status of the application install:
And if we click on Client0002 we can see that status of each dependency, which is very useful if one of them should fail to install:
That concludes this scenario-post for Win32 App dependencies. This feature is a true game changer for Modern Cloud Management of Windows 10.