0
votes

When I was looking at the Conditions for installing the 4.6.2 .NET Framework I see this

  1. Registry has value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release < 394806
  2. Win 7/Win Server 2008 R2 (SP 1+)
  3. Win 8/Win Server 2012
  4. Win 8.1/Win Server 2012 R2
  5. Win 10

This works great if the user uses windows update regularly and he/she has a 4.0+ .NET framework installed.

But if a Windows 7 user never updates his/her .NET framework then the default one would be .NET 3.5

And HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\ would not exist. The first condition fails and InstallShield would not attempt to install .NET 4.6.2 on user's machine.

Seems like there is no way to use Or group for prerequisite condition. How can I make sure

  1. .NET 4.6.2 is automatically installed for users with 4.6.2 below
  2. .NET 4.6.2. will NOT get installed for users with 4.6.2 above
1

1 Answers

1
votes

Based on the answer provided by flexerasoftware it is not possible to do in basic MSI project.

I was able to get it working by using a Advanced UI Suite project and added .NET framework 4.6.2 as a dependency package.

In the Detection condition section config it using a custom Or logic to check whether 4.6.2 should be installed