Update: The current stable version of WiX now has this integrated; this answer may be of interest if, for some reason, you're using an older version (e.g. 3.10.3, which was latest when this was originally written)
The current release version of WiX (3.10.3) doesn't support this property, nor does the current 3.10.x nightly build (3.10.3.3007) - it does look like the 3.11.0.960 does support it, but that build isn't labeled as production ready so it's not an option for my scenario.
What I ended up doing was grabbing the source for NetFx461.wxs (here), and adding it to my 3.10 release project after modifying it slightly (see below). After that I was able to use the property. You could do similar changes for 4.6.2 if needed.
Here's the file:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs">
<?define NetFx461MinRelease = 394254 ?>
<?define NetFx461WebLink = http://go.microsoft.com/fwlink/?LinkId=671728 ?>
<?define NetFx461RedistLink = http://go.microsoft.com/fwlink/?LinkId=671743 ?>
<Fragment>
<PropertyRef Id="WIXNETFX4RELEASEINSTALLED" />
<Property Id="WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED" Secure="yes" />
<SetProperty Id="WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED" Value="1" After="AppSearch">
WIXNETFX4RELEASEINSTALLED >= "#$(var.NetFx461MinRelease)"
</SetProperty>
</Fragment>
<Fragment>
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
<WixVariable Id="NetFx461WebDetectCondition" Value="NETFRAMEWORK45 >= $(var.NetFx461MinRelease)" Overridable="yes" />
<WixVariable Id="NetFx461WebInstallCondition" Value="" Overridable="yes" />
<WixVariable Id="NetFx461WebPackageDirectory" Value="redist\" Overridable="yes" />
<PackageGroup Id="NetFx461Web">
<ExePackage
InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
RepairCommand="/q /norestart /repair /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
PerMachine="yes"
DetectCondition="!(wix.NetFx461WebDetectCondition)"
InstallCondition="!(wix.NetFx461WebInstallCondition)"
Id="NetFx461Web"
Vital="yes"
Permanent="yes"
Protocol="netfx4"
DownloadUrl="$(var.NetFx461WebLink)"
LogPathVariable="NetFx461FullLog"
Compressed="no"
Name="!(wix.NetFx461WebPackageDirectory)NDP461-KB3102438-Web.exe">
<RemotePayload
CertificatePublicKey="52868DFCA6E3AF2632389E6C1EE7D0468D3797D0"
CertificateThumbprint="3BDA323E552DB1FDE5F4FBEE75D6D5B2B187EEDC"
Description="Microsoft .NET Framework 4.6.1 Setup"
Hash="EE88B05232F43B517D4A368F7EE5065CDE7F67FA"
ProductName="Microsoft .NET Framework 4.6.1"
Size="1424328"
Version="4.6.1055.0" />
</ExePackage>
</PackageGroup>
</Fragment>
<Fragment>
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
<WixVariable Id="NetFx461RedistDetectCondition" Value="NETFRAMEWORK45 >= $(var.NetFx461MinRelease)" Overridable="yes" />
<WixVariable Id="NetFx461RedistInstallCondition" Value="" Overridable="yes" />
<WixVariable Id="NetFx461RedistPackageDirectory" Value="redist\" Overridable="yes" />
<PackageGroup Id="NetFx461Redist">
<ExePackage
InstallCommand="/q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
RepairCommand="/q /norestart /repair /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
UninstallCommand="/uninstall /q /norestart /ChainingPackage "[WixBundleName]" /log "[NetFx461FullLog].html""
PerMachine="yes"
DetectCondition="!(wix.NetFx461RedistDetectCondition)"
InstallCondition="!(wix.NetFx461RedistInstallCondition)"
Id="NetFx461Redist"
Vital="yes"
Permanent="yes"
Protocol="netfx4"
DownloadUrl="$(var.NetFx461RedistLink)"
LogPathVariable="NetFx461FullLog"
Compressed="no"
Name="!(wix.NetFx461RedistPackageDirectory)NDP461-KB3102436-x86-x64-AllOS-ENU.exe">
<RemotePayload
CertificatePublicKey="52868DFCA6E3AF2632389E6C1EE7D0468D3797D0"
CertificateThumbprint="3BDA323E552DB1FDE5F4FBEE75D6D5B2B187EEDC"
Description="Microsoft .NET Framework 4.6.1 Setup"
Hash="83D048D171FF44A3CAD9B422137656F585295866"
ProductName="Microsoft .NET Framework 4.6.1"
Size="67681000"
Version="4.6.1055.0" />
</ExePackage>
</PackageGroup>
</Fragment>
</Wix>
Add that (say as NetFx461.wxs) to your WiX installer project and you'll have access to the desired properties.
WixNetFxExtension
: stackoverflow.com/a/27946359/492 - especially in command line things but also in VS projects – CAD bloke