Windows Develop Bookmark and Share   
 index > ClickOnce and Setup & Deployment Projects > Visual Studio 2005: Windows Installer 4.5 Bootstrapper fails on Vista Home SP1 (32 bit systems)
 

Visual Studio 2005: Windows Installer 4.5 Bootstrapper fails on Vista Home SP1 (32 bit systems)

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 projectfor 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!

<?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="http://schemas.microsoft.com/developer/2004/01/bootstrapper"

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">http://go.microsoft.com/fwlink/?LinkID=120238</String>

<String Name="Msi45XPx86exe">http://go.microsoft.com/fwlink/?LinkID=120234</String>

</Strings>

</Product>

  • Moved byYiChun ChenMSFTWednesday, May 20, 2009 3:41 AMDeployment issue (From:Visual Studio Setup and Installation)
  •  
Chelmsford  Monday, May 18, 2009 1:52 PM
Hi Chelmsford,

I am moving this thread from Base "Visual Studio Setup and Installation" forum to the "ClickOnce and Setup & Deployment Projects" forum, since the issue is related to deployment. There are more deployment experts in the "ClickOnce and Setup & Deployment Projects" forum.

Thanks
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
YiChun Chen  Wednesday, May 20, 2009 3:39 AM
Thank you!
Chelmsford  Wednesday, May 20, 2009 7:33 AM
Hi Chelmsford,

If you run the setup under administrator, is there any problem?

Best regards,
Bruce Zhou
Please mark the replies as answers if they help and unmark if they don't.
Bruce.Zhou  Wednesday, May 20, 2009 9:00 AM
Hi Bruce,

Thank you very much for your response. Ihave beenlogging in to mytest Vista PCas an administrator and have now also triedright-clicking the setup.exe and selecting "run as adminisitrator" but the failure still occurs.I am testing under Windows Vista Home Premium SP1 (I omitted the word Premium from my original post) - not sure if this makes a difference.

Thanks again.
Chelmsford  Wednesday, May 20, 2009 10:32 AM
Hi Chelmsford,

Are you sure windows Installer version is less than 4.5 before you start the setup? Besides, Try to check out at this article and see if it helps.


Best regards,
Bruce Zhou.
Please mark the replies as answers if they help and unmark if they don't.
Bruce.Zhou  Wednesday, May 20, 2009 2:53 PM
Thanks again Bruce for your input. I've double-checked and the version of msi.dll in the windows system32 folder is 4.0.6001.18000 which Ithink is the version installed with Vista SP1. Also, there is no reference to KB942288 in the Windows "Update History" list, which I believe should exist if Windows Installer 4.5 has been installed, i.e. "Hot fix for MS Windows (KB942288)". Windows Installer 4.5 only seems toinstall properly if I run Windows6.0-KB942288-v2-x86.MSU manually from the command line, in which casethe version of msi.dll changes to 4.5.6001.22162. I note that Windows Installer 4.5 should be included in Vista SP2 (when available) so one "workaround" in due course may be to only install on PCs with Vista SP2. Until then we'll have to install Windows Installer 4.5 manually. Otherwise, any further suggestions would be most gratefully received!
Chelmsford  Wednesday, May 20, 2009 3:52 PM
Just athought - for the purpose of testing I'd take out the quiet and norestartoptions and see if it's trying to tell you something.
Also,if msi.dll is in use then it won't be replaced when you run that redist. It will be marked for replacement at the next reboot, so there's a good chance that the /norestart flag will often be a problem. There are times whenyou will definitely need to reboot for the new MSI engine to be installed for the remaining setups to work.
Phil Wilson
PhilWilson  Wednesday, May 20, 2009 10:14 PM

Thank you very much for your response Phil. I have already tried this as well as manual reboots, but just to be sure, I've just tried it again, this time also removing everything irrelevant from the deployment project including everything for Windows XP. The only tasks it attempts now are (1) install prerequisite Windows Installer 4.5 under Vista omitting Arguments= "/quiet /norestart", (2) place a single file onto the disk in the application folder.

As before, having acknowledged the EULA, the Windows Installer 4.5 installation is started but then immediately the next stage of the installation commences, i.e. placing the single file in the application folder. Windows Installer 4.5 is not actually installed but the installation is treated as successful. When done manually from the command line, it takes a few minutes to install Windows Installer 4.5 on my test PC, whereas the bootstrapper "completes" in about a second.

The results are the same regardless of whether I select either of the following options for the prerequisites for the deployment project in Visual Studio 2005:
- Download prerequisites from the same location as my application
- Download prerequisites from the component vendor's website
The MSU file used in both cases is the same (with the MSU file being successfully downloaded each time with the second option).

These are the last few lines of the resulting log in the temporary folder:

Result of checks for command 'WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU' is 'Install'
'Windows Installer 4.5' RunCheck result: Install Needed
Verifying file integrity of C:\Users\CHL\AppData\Local\Temp\VSD2DD3.tmp\WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU
WinVerifyTrust returned 0
File trusted
Installing using command line '"C:\Users\CHL\AppData\Local\Temp\VSD2DD3.tmp\WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU" '
Launching Application.
Using MsiInstallProduct with package path 'C:\CHL\Release\Fred 4.0.1.msi' and command line ''
MsiInstallProduct returned '0'

Chelmsford  Thursday, May 21, 2009 11:50 AM
Hi,

Had you founda solution to this issue as I am having the same problem?

Regards

James
JimJimany  Monday, July 06, 2009 11:32 AM

Thank you very much for your response Phil. I have already tried this as well as manual reboots, but just to be sure, I've just tried it again, this time also removing everything irrelevant from the deployment project including everything for Windows XP. The only tasks it attempts now are (1) install prerequisite Windows Installer 4.5 under Vista omitting Arguments= "/quiet /norestart", (2) place a single file onto the disk in the application folder.

As before, having acknowledged the EULA, the Windows Installer 4.5 installation is started but then immediately the next stage of the installation commences, i.e. placing the single file in the application folder. Windows Installer 4.5 is not actually installed but the installation is treated as successful. When done manually from the command line, it takes a few minutes to install Windows Installer 4.5 on my test PC, whereas the bootstrapper "completes" in about a second.

The results are the same regardless of whether I select either of the following options for the prerequisites for the deployment project in Visual Studio 2005:
- Download prerequisites from the same location as my application
- Download prerequisites from the component vendor's website
The MSU file used in both cases is the same (with the MSU file being successfully downloaded each time with the second option).

These are the last few lines of the resulting log in the temporary folder:

Result of checks for command 'WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU' is 'Install'
'Windows Installer 4.5' RunCheck result: Install Needed
Verifying file integrity of C:\Users\CHL\AppData\Local\Temp\VSD2DD3.tmp\WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU
WinVerifyTrust returned 0
File trusted
Installing using command line '"C:\Users\CHL\AppData\Local\Temp\VSD2DD3.tmp\WindowsInstaller4_5\Windows6.0-KB942288-v2-x86.MSU" '
Launching Application.
Using MsiInstallProduct with package path 'C:\CHL\Release\Fred 4.0.1.msi' and command line ''
MsiInstallProduct returned '0'


I'm in a similar situation. The difference is mainly I'm bundling sql server 2005 express sp3 to Vista OS.
It seems you've taken all the logical steps, and yet, the Windows6.0-KB942288-v2-x86.MSU failed to be installed from command line with /quiet /norestart switches. Does the problem lie in Vista end or dows6.0-KB942288-v2-x86.MSU? Some at MS who's extremely knowledgeable about dows6.0-KB942288-v2-x86.MSU got to step in.
anythingreally  Thursday, August 13, 2009 5:24 PM

You can use google to search for other answers

Custom Search

More Threads

• Click Once Deployment for PDA
• Problem in Click once deplyoment with SQLExpress as pre-requisite
• how to update the application?
• clickonce installation
• Deployment project does not upgrade properly after upgraded to vs2008
• Configuring .NET Applications to Run
• Silent install of setup.exe failed.
• Creating Windows Installer Package (Setup Project) spanning multiple setup Discs (CD/DVD)
• Add .LNK shorcut files to VS Deployment Project
• installer in arabic language???how