Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Windows Installer 4.5 Bootstrapper fails on Vista Home SP1 (32 bit)

Status
Not open for further replies.

Chelmsford

Programmer
Nov 22, 2002
4
GB
I am struggling with a bootstrapper problem and would be extremely grateful for some assistance. I hope this is the correct forum to use, thank you very much in advance.

I am using Visual Studio 2005 to create a deployment project for a VB6 application with 3 prerequisites: Windows Installer 4.5, .Net Framework 3.5 SP1 and SQL Server 2008 Express SP1. I am only interested in 32 bit architectures.

My deployment project works successfully on Windows XP but fails to install Windows Installer 4.5 on Vista Home SP1. I am using “Windows6.0-KB942288-v2-x86.msu” as the installation file for Vista (this is a different file to the one I am using for installing on XP = “WindowsXP-KB942288-v3-x86.exe”), downloaded from the Microsoft website (
The symptoms of the problem are: the bootstrapper starts the installation of Windows Installer 4.5, then, without waiting, immediately moves onto .Net Framework 3.5 SP1, which it does wait for and, once installed successfully, then moves onto the installation of SQL Server 2008 SP1. Of course, SQL Server 2008 SP1 then fails to install because it’s prerequisite, Windows Installer 4.5, is not there.

No error code appears to be returned from the MSU file (I’ve checked the installation log in the temporary folder). So, I assume that (a) either the MSU file is failing immediately but not returning an error code, or (b) the bootstrapper is not waiting for the MSU file to complete. The MSU file installs Windows Installer 4.5 successfully on Vista when run manually outside of the bootstrapper using the same arguments as the bootstrapper.

In order to set up the 3 bootstrappers under Visual Studio 2005, I temporarily installed Visual Studio 2008 Express, then copied the 3 template bootstrappers from the 2008 bootstrapper folder into the Visual Studio 2005 bootstrapper folder:
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\
I then stripped out any references to 64-bit architecture in order to reduce the footprint of the installation solution and downloaded the relevant redistributable installation files from the Microsoft website.

I have copied in below the resulting product.xml (package.xml has not been changed) and am hoping someone can assist – thank you once again in advance!

Code:
<?xml version="1.0" encoding="utf-8" ?>
<!-- Windows Installer 4.5 VS Bootstrapper : product.xml : Language neutral information -->
<!-- x86 platform only and for Vista and XP only -->
<Product
	xmlns="[URL unfurl="true"]http://schemas.microsoft.com/developer/2004/01/bootstrapper"[/URL]
	ProductCode="Microsoft.Windows.Installer.4.5">
	<!-- The package does not contain an IncludesProduct element for Windows Installer 3.1. -->
	<!-- This ommision is by design in order to achive a specific sequencing of bootstrapper packages -->
	<!-- to reduce the number of potential reboots under certain conditions. -->
	
		<!-- Defines list of files to be copied on build -->
		<PackageFiles CopyAllPackageFiles="false">
			<PackageFile Name="WindowsXP-KB942288-v3-x86.exe" HomeSite="Msi45XPx86exe"
									 PublicKey="3082010a0282010100a2db0a8dcfc2c1499bcdaa3a34ad23596bdb6cbe2122b794c8eaaebfc6d526c232118bbcda5d2cfb36561e152bae8f0ddd14a36e284c7f163f41ac8d40b146880dd98194ad9706d05744765ceaf1fc0ee27f74a333cb74e5efe361a17e03b745ffd53e12d5b0ca5e0dd07bf2b7130dfc606a2885758cb7adbc85e817b490bef516b6625ded11df3aee215b8baf8073c345e3958977609be7ad77c1378d33142f13db62c9ae1aa94f9867add420393071e08d6746e2c61cf40d5074412fe805246a216b49b092c4b239c742a56d5c184aab8fd78e833e780a47d8a4b28423c3e2f27b66b14a74bd26414b9c6114604e30c882f3d00b707cee554d77d2085576810203010001"/>
			<PackageFile Name="Windows6.0-KB942288-v2-x86.MSU" HomeSite="Msi45Vistax86msu"
									 PublicKey="3082010a0282010100aeab00c051b5892274f899e0795867c715c1634c7f315eca4a5d680fd967ae2d560fa01099a9d17793272da2645679daf26cef6e09cd6926f1ef0a13e9de2e22680d15bd0345e532d0009cace2eea6ae4a3edb2cfd525eef23b835b2ada53ae9f111764bbf8abcc81a9f81e1c85cf79db9a85aa8f0e00e667728c5694f7c2b57826740cc812404d325fc4573157cfd8544020941a433c2efc90fa249a4e2aa891ed21852e7708b66cdf94c2eefabfb84da62bfb18663e18443c5ad1ed23a0e9de5f362bfd813670228e8b125e990c8cf55c2f19bc02b2666b7fbe1c69f9c56bdb56c6e570b0ef137aa10d8a4dd463d3323c8ff289db07551f375d821a6c563c50203010001"/>
		</PackageFiles>

		<!-- Defines how to invoke the setup for the Windows installer 4.5 redist -->
		<Commands Reboot="Immediate">
		<!-- Defines installation command for:
				Vista RTM and later
				Windows Server 2008 RTM and later
				on x86 platform -->
				<Command PackageFile="Windows6.0-KB942288-v2-x86.MSU" 
								 Arguments= "/quiet /norestart"
				 EstimatedInstalledBytes="1768448"
								 EstimatedInstallSeconds="450" >
						<InstallConditions>
				<BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="4.5" />
				<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />
				<BypassIf Property="VersionNT" Compare="VersionLessThan" Value="6.0" />
								<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatform"/>
				<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
						</InstallConditions>
						<ExitCodes>
								<ExitCode Value="0" Result="Success"/>
								<ExitCode Value="1641" Result="SuccessReboot"/>
								<ExitCode Value="3010" Result="SuccessReboot"/>
								<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
						</ExitCodes>
				</Command>

		<!-- Defines installation command for:
				Windows XP Service Pack 2 and later
				on x86 platform -->
		<Command PackageFile="WindowsXP-KB942288-v3-x86.exe"
								 Arguments= "/quiet /norestart"
				 EstimatedInstalledBytes="3326976"
								 EstimatedInstallSeconds="450" >
			<InstallConditions>
				<BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="4.5" />
				<BypassIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" />
				<BypassIf Property="VersionNT" Compare="VersionGreaterThanOrEqualTo" Value="5.2.0" />
				<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatform"/>
				<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.1.2" String="InvalidPlatform"/>
				<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
			</InstallConditions>
			<ExitCodes>
				<ExitCode Value="0" Result="Success"/>
				<ExitCode Value="1641" Result="SuccessReboot"/>
				<ExitCode Value="3010" Result="SuccessReboot"/>
				<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
			</ExitCodes>
		</Command>
		
	</Commands>
	
	<!-- Defines Homesite locations for each of the downloads -->
	<Strings>
		<String Name="Msi45Vistax86msu">[URL unfurl="true"]http://go.microsoft.com/fwlink/?LinkID=120238</String>[/URL]
		<String Name="Msi45XPx86exe">[URL unfurl="true"]http://go.microsoft.com/fwlink/?LinkID=120234</String>[/URL]
	</Strings>
</Product>
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top