PDQ ISome applications have requirements for a certain version of .NET to be installed. In a case like this, not only do you need to make sure that you have the correct version of the application you want to install, but you also need to make sure you have the correct version of .NET. An example of this is Paint.NET
Paint.NET is a free (and quite handy) image editing tool. It is a fairly popular download from the PDQ Deploy Package Library. Tracking machines that have out-of-date versions of this application is fairly easy; however, there is one gotcha when you want to get the latest version out to some of these computers.
The issue is that the latest (as of this writing) versions of Paint.NET require that Microsoft .NET 4.6 or later is installed. If you attempt to deploy Paint.NET 4.09 to a computer that doesn’t have the correct .NET runtime you will get a 1603 error. This is why you will want to have two collections (if you use PDQ Inventory) to track old Paint.NET versions.
Getting Organized with Collections
The image below shows the Paint.NET collections in PDQ Inventory. These collections are available in the Collection Library, so you won’t need to build them yourself if you have PDQ Inventory in Enterprise mode. Notice how there is an extra “Old” collection titled “Paint.NET(Old – Require Microsoft .NET 4.6 or higher)”.
Below are two images showing the Old collections. The first shows machines that have an old Paint.NET and have the appropriate .NET runtime. The second shows machines with an old Paint.NET but also have an old .NET runtime. These computers will need to have Microsoft .NET 4.6 (or higher) deployed to them. Yes, this package is also available in the Package Library.
Creating custom collections like these are sometimes necessary when you have applications that must meet certain prerequisites before being upgraded.
It is very important to remember something when checking prerequisites. Usually you need to perform some extra magic with your collection filters when you are looking for machines that are missing certain applications. Tracking .NET versions is different than looking for old versions of software. PDQ Inventory places all detected versions of .NET in a single row with each version delimited by a comma. This is why we could use a simple filter of .NET Versions “Does Not Contain” 4.6.
Let’s say you have an application that requires a target computer to have the Microsoft Visual C++ 2015 runtime. To find computers that don’t have this runtime and also have an old version of your app would require filters that looks something like the image below. Notice the Group Filter that is set to Not Any.