Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

How to work around Visual Studio 2005 and 2008 unattended install bug related to Windows Installer 3.1

How to work around Visual Studio 2005 and 2008 unattended install bug related to Windows Installer 3.1

  • Comments 20

While helping an internal Microsoft team work on deployment scripts to install Visual Studio 2008 to the systems in their test lab, we found a bug in the VS 2005 and VS 2008 unattended setup logic that I wanted to describe here and provide a workaround for.

Description of the issue

If you are creating and using an unattended INI file to deploy VS 2005 or VS 2008, and the target system is Windows XP or Windows Server 2003 and has a version of Windows Installer that is newer than version 3.1.4000.2435, then setup will incorrectly attempt to install Windows Installer 3.1 even though a later version is already on the system, and then eventually setup will fail silently.

For reference, VS 2005 and VS 2008 setup look at the file version of the file %windir%\system32\msi.dll to determine what version of Windows Installer is present on the system.

How to work around the issue

If you are running into this scenario while deploying VS 2005 and/or VS 2008, you can use the following steps to work around this issue:

  1. Launch Visual Studio 2005 or 2008 setup by running <VS install location>\setup\setup.exe /createunattend vs_unattend.ini
  2. Select the components that you want to install in the VS 2005 or 2008 setup feature tree and save the INI file
  3. Open the INI file in a text editor such as Notepad
  4. Locate the [PreInstallOrder] section and remove the line gfn_mid windows installer 3.1
  5. Locate the [InstallOrder] section and remove the line gfn_mid windows installer 3.1
  6. Locate the [PostInstallOrder] section and remove the line gfn_mid windows installer 3.1
  7. Locate the [gfn_mid windows installer 3.1] section and change the line that says InstallActionInteger=5 to say InstallActionInteger=1
  8. Save and close the INI file
  9. Run <VS install location>\setup\setup.exe /unattendfile vs_unattend.ini

One additional note - if you are using the new silent install switches (/q and /full) to deploy VS 2008 instead of creating an INI file, then you will not see this behavior, even if you have a version of Windows Installer that is newer than 3.1.4000.2435 installed on your system.

<update date="2/4/2008"> This issue affects both VS 2005 and VS 2008, so I updated the text to indicate that it can happen for either product family. </update>

 

  • I am very interested in the solution Helenp1983 has found to install Visual Studio 2008 to Windows 7 x64 using SCCM 2007.  Once I install the prerequisites, the main installs starts, then bombs out.  I cannot figure it out for the life of me.  If I run the same command line installation manually, Visual Studio installs perfectly.  What am I missing?  I know this is an old thread, but still worth a try.

    Mike

  • Hi Mstarks67 - I don't have any specific details from Helenp1983 about what they had to do to make the install work correctly from SCCM.  If you'd like, I can try to take a look at your setup log files and see if I can help narrow down the root cause of the installation failure.  Can you please use the tool described at blogs.msdn.com/.../6458047.aspx to gather your setup log files, upload the file named %temp%\vslogs.cab that this tool will create on a file server (such as http://skydrive.live.com) and reply back here with a link I can use to download your logs and take a further look?

  • astbner - Thank you for your offer, but I think I have resolved the issue.  For the longest time, I was trying to use an unattended setup with no luck.  After multiple failures, I stepped back and decided to try a different approach.  Since we needed the full version of VS2008 minus the SQL Express, I decided to strip out the 2 entries for SQL Express in the baseline.dat file and run a silent install.  That worked for a manual installation but the SCCM package failed.  Following a hunch, I removed the entries in the baseline.dat file for Windows Installer, Document Explorer, Web Developer Tools and 64-bit prerequisites), as they are installed prior to the VS 2008 package.  That seems to have done the trick as my SCCM package/task sequence is now working correctly.

  • I can get /unattendfile working for vs2010 on Windows 2008 R2 but I can't get it to work for 2005/2008.  It just churns for a while and quits without installing anything.  setup /q /full works with vs2008 though.

  • Hi Vince Harron - You will need to make sure that you update your unattended INI file for VS 2005 and VS 2008 using the instructions in this blog post and also the ones at blogs.msdn.com/.../515629.aspx.  This will prevent VS setup from trying to install components that are a part of your OS already.  Hopefully, your unattended installation will complete successfully after you do that.

Page 2 of 2 (20 items) 12
Leave a Comment
  • Please add 6 and 2 and type the answer here:
  • Post