I'm trying to detect which version .NET is installed using WiX. I've tried:
<Condition Message='This setup requires the .NET Framework 3.5 or higher.'>
<![CDATA[MsiNetAssemblySupport >= "3.5.0.0"]]>
</Condition>
But that won't work, because the MsiNetAssemblySupport property checks the version of fusion.dll
, which wasn't updated from version 2.0 in .NET 3.0 or 3.5.
Is it feasible to check for the presence of the .NET libraries in the system directory? How would I do that using WiX? Or is there some way to do that using the registry?
(I realize that there's a WiX user email list, but this is the Oughts-- I don't like 1980s technology, I like stuff I can easily search.)
The answer seems to be no. You cannot (in a reliable way) check whether .NET framework version X or higher is installed. You can only check whether a specific .NET version is installed. Now that .NET 4.0 is released it is annoying that you have to install .NET 3.5 even if .NET 4.0 is already installed.
I hope the WiX developers will find a solution to this problem.
Visual Studio -> WiX project -> Add Reference -> WixNetFxExtension.dll and then:
Full details, including all .NET version properties available in the extension. Also consider whether condition message should be localized.