<?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Microsoft.Net.Framework.2.0">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
</RelatedProducts>
<Schedules>
<Schedule Name="AfterCoreInstalled">
<BeforePackage />
<AfterPackage />
</Schedule>
</Schedules>
<!-- Defines list of files to be copied on build -->
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="dotnetfx_x86.exe" />
<PackageFile Name="NetFx64_x64.exe" />
<PackageFile Name="NetFx64_IA64.exe" />
</PackageFiles>
<InstallChecks>
<RegistryCheck Property="InstalledSP" Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727" Value="SP" />
<RegistryCheck Property="Installed" Key="HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727" Value="Install" />
<RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>
<!-- Defines how to invoke the setup for the .NET Framework redist -->
<Commands Reboot="Immediate">
<!-- The x86 version! -->
<Command PackageFile="dotnetfx_x86.exe"
Arguments= '/q'
EstimatedInstallSeconds="150" EstimatedInstalledBytes="80000000" EstimatedTempBytes="50000000">
<InstallConditions>
<!-- Skip install if NetFX20 is already installed -->
<BypassIf Property="Installed" Compare="ValueEqualTo" Value="1"/>
<!-- Skip install if NetFX20 SP2 is already installed -->
<!--<BypassIf Property="InstalledSP"
Compare="ValueGreaterThanOrEqualTo" Value="2"/>-->
<!-- Skip running setup if the OS is Vista or later -->
<FailIf Property="VersionNT" Compare="VersionGreaterThanOrEqualTo" Value="6.0.0" String="NotOnVista"/>
<!-- Skip install if the platform is IA-64 -->
<!--<FailIf Property="ProcessorArchitecture"
Compare="ValueEqualTo" Value="IA64" String="InvalidPlatformArchitecture"
/>-->
<!-- Skip install if the platform is not x86 -->
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />
<!-- Block install if user does not have admin privileges -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" />
<!-- Block install if IE 5.01 or greater is not present -->
<FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE"
/>
<FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.0.2900" String="InvalidPlatformIE"
/>
<!-- Block install on Windows 95 -->
<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatformWin9x"/>
<!-- Block install on less than Windows 2000 SP4 -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.4" String="InvalidPlatformWinNT"/>
<!-- Block install on less than Windows XP SP2 -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.0" String="InvalidPlatformWinNT"/>
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.1" String="InvalidPlatformWinNT"/>
<!-- Block install on W2K3 with no service pack -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.2.0" String="InvalidPlatformWinNT"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1602" Result="Fail" String="CancelledInstall" />
<ExitCode Value="1603" Result="Fail" String="GeneralFailure" />
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="5100" Result="Fail" String="GeneralFailure"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<!-- The x64 version! -->
<Command PackageFile="NetFx64_x64.exe"
Arguments= '/q'
EstimatedInstallSeconds="150" EstimatedInstalledBytes="180000000" EstimatedTempBytes="110000000">
<InstallConditions>
<!-- Skip install if NetFX20 is already installed -->
<BypassIf Property="Installed" Compare="ValueEqualTo" Value="1"/>
<!-- Skip install if NetFX20 SP2 is already installed -->
<!--<BypassIf Property="InstalledSP"
Compare="ValueGreaterThanOrEqualTo" Value="2"/>-->
<!-- Skip running setup if the OS is Vista or later -->
<FailIf Property="VersionNT" Compare="VersionGreaterThanOrEqualTo" Value="6.0.0" String="NotOnVista"/>
<!-- Skip install if the platform is IA-64 -->
<!--<FailIf Property="ProcessorArchitecture"
Compare="ValueEqualTo" Value="IA64"
String="InvalidPlatformArchitecture" />-->
<!-- Skip install if the platform is not x64 -->
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="amd64" />
<!-- Block install if user does not have admin privileges -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" />
<!-- Block install if IE 5.01 or greater is not present -->
<FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE"
/>
<FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.0.2900" String="InvalidPlatformIE"
/>
<!-- Block install on Windows 95 -->
<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatformWin9x"/>
<!-- Block install on less than Windows 2000 SP4 -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.4" String="InvalidPlatformWinNT"/>
<!-- Block install on less than Windows XP SP2 -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.0" String="InvalidPlatformWinNT"/>
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.1" String="InvalidPlatformWinNT"/>
<!-- Block install on W2K3 with no service pack -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.2.0" String="InvalidPlatformWinNT"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1602" Result="Fail" String="CancelledInstall" />
<ExitCode Value="1603" Result="Fail" String="GeneralFailure" />
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="5100" Result="Fail" String="GeneralFailure"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<!-- The IA64 version! -->
<Command PackageFile="NetFx64_IA64"
Arguments= '/q'
EstimatedInstallSeconds="150" EstimatedInstalledBytes="180000000" EstimatedTempBytes="110000000">
<InstallConditions>
<!-- Skip install if NetFX20 is already installed -->
<BypassIf Property="Installed" Compare="ValueEqualTo" Value="1"/>
<!-- Skip install if NetFX20 SP2 is already installed -->
<!--<BypassIf Property="InstalledSP"
Compare="ValueGreaterThanOrEqualTo" Value="2"/>-->
<!-- Skip running setup if the OS is Vista or later -->
<FailIf Property="VersionNT" Compare="VersionGreaterThanOrEqualTo" Value="6.0.0" String="NotOnVista"/>
<!-- Skip install if the platform is IA-64 -->
<!--<FailIf Property="ProcessorArchitecture"
Compare="ValueEqualTo" Value=""
String="InvalidPlatformArchitecture" />-->
<!-- Skip install if the platform is not IA64 -->
<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="IA64" />
<!-- Block install if user does not have admin privileges -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" />
<!-- Block install if IE 5.01 or greater is not present -->
<FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE"
/>
<FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.0.2900" String="InvalidPlatformIE"
/>
<!-- Block install on Windows 95 -->
<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatformWin9x"/>
<!-- Block install on less than Windows 2000 SP4 -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.4" String="InvalidPlatformWinNT"/>
<!-- Block install on less than Windows XP SP2 -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.0" String="InvalidPlatformWinNT"/>
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.1.1" String="InvalidPlatformWinNT"/>
<!-- Block install on W2K3 with no service pack -->
<FailIf Property="VersionNT" Compare="VersionEqualTo" Value="5.2.0" String="InvalidPlatformWinNT"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1602" Result="Fail" String="CancelledInstall" />
<ExitCode Value="1603" Result="Fail" String="GeneralFailure" />
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="5100" Result="Fail" String="GeneralFailure"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>
</Product>