Currently, I have the following fragment to check and install Windows Installer 4.5 if the user is on Windows XP.
<Fragment>
<Property Id="WinXPx86HasInstaller">
<![CDATA[VersionNT = 'v5.1' AND VersionMsi >= "4.5.6001.22159"]]>
</Property>
<PackageGroup Id="Windows.Installer.4.5">
<ExePackage Id="WinXp_x86"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
InstallCommand="/norestart /passive"
SourceFile="WindowsXP-KB942288-v3-x86.exe"
DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe"
DetectCondition="WinXPx86HasInstaller"
InstallCondition="NOT WinXPx86HasInstaller">
<ExitCode Behavior="forceReboot" />
</ExePackage>
</PackageGroup>
</Fragment>
However, this is not working and the property "WinXPx86HasInstaller" always evaluates to false even when it is installed.
What am I doing wrong?