目前,如果用户在
Windows XP上,我有以下片段来检查和安装Windows Installer 4.5.
- <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>
但是,这不起作用,即使安装它,属性“WinXPx86HasInstaller”也总是计算为false.
我究竟做错了什么?
有点烦人的是,与WiX不同,没有办法轻松测试Burn InstallConditions – 只有DetectConditions在运行时打印在日志中.花了一段时间测试反向InstallConditions作为DetectConditions [*],这个片段似乎适合我:
- <!-- Windows Installer 4.5 -->
- <Fragment>
- <PackageGroup Id="WindowsInstaller45">
- <ExePackage
- Cache="no"
- Compressed="no"
- PerMachine="yes"
- Permanent="yes"
- Vital="yes"
- SourceFile="redist\WindowsXP-KB942288-v3-x86.exe"
- DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe"
- InstallCondition="VersionNT=v5.1 AND NOT VersionNT64 AND VersionMsi < v4.5"
- InstallCommand="/quiet /norestart">
- <ExitCode Behavior="forceReboot"/>
- </ExePackage>
- <ExePackage
- Cache="no"
- Compressed="no"
- PerMachine="yes"
- Permanent="yes"
- Vital="yes"
- SourceFile="redist\WindowsServer2003-KB942288-v4-x86.exe"
- DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsServer2003-KB942288-v4-x86.exe"
- InstallCondition="VersionNT=v5.2 AND NOT VersionNT64 AND VersionMsi < v4.5"
- InstallCommand="/quiet /norestart">
- <ExitCode Behavior="forceReboot"/>
- </ExePackage>
- <ExePackage
- Cache="no"
- Compressed="no"
- PerMachine="yes"
- Permanent="yes"
- Vital="yes"
- SourceFile="redist\WindowsServer2003-KB942288-v4-x64.exe"
- DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsServer2003-KB942288-v4-x64.exe"
- InstallCondition="VersionNT=v5.2 AND VersionNT64 AND VersionMsi < v4.5"
- InstallCommand="/quiet /norestart">
- <ExitCode Behavior="forceReboot"/>
- </ExePackage>
- <MsuPackage
- Cache="no"
- Compressed="no"
- Permanent="yes"
- Vital="yes"
- KB="KB942288"
- SourceFile="redist\Windows6.0-KB942288-v2-x86.msu"
- DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/Windows6.0-KB942288-v2-x86.msu"
- InstallCondition="VersionNT=v6.0 AND NOT VersionNT64 AND VersionMsi < v4.5"/>
- <MsuPackage
- Cache="no"
- Compressed="no"
- Permanent="yes"
- Vital="yes"
- KB="KB942288"
- SourceFile="redist\Windows6.0-KB942288-v2-x64.msu"
- DownloadUrl="http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/Windows6.0-KB942288-v2-x64.msu"
- InstallCondition="VersionNT=v6.0 AND VersionNT64 AND VersionMsi < v4.5"/>
- </PackageGroup>
- </Fragment>