Aaron Stebner's WebLog

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

How to silently install Visual Studio 2005 Express Editions

How to silently install Visual Studio 2005 Express Editions

  • Comments 38

A few folks (both inside and outside of Microsoft) have contacted me asking for instructions for how to install the Visual Studio 2005 Express Editions in silent and/or unattended mode.

Some of you have found the instructions I previously posted for Visual Studio 2005 unattended installations and tried them with the Express Editions.  However, you will find that running any of the Express Edition setup.exe files with the /createunattend or /unattendfile switches will show an error dialog stating that those switches are not supported with this setup package.

There is not a built-in automated silent or unattended installation mode for the Express Editions, so the method for performing silent installation is a bit more involved than it is for the higher-level versions of Visual Studio 2005.  You have to download each of the setup packages that is chained as part of the Express Edition setup and then run each of them using their individual silent mode command line switches.

To accomplish the setup package download, you need to follow the instructions to create a network install point for a VS 2005 Express Edition.

Once you have downloaded the pieces of the Express Edition setup package, you will need to figure out which pieces are needed for the OS type (Windows XP, Windows Server 2003, etc), OS language (English, etc), processor architecture (x86, x64) and Express Edition type (VB, VWD, etc).

The following is a list of the Express setup packages, what conditions they are needed for and their silent command line switches:

Windows Installer 3.1

Needed on Windows 2000 and Windows XP if not already installed

WindowsInstaller-KB893803-v2-x86.exe /quiet /norestart

.NET Framework 2.0 (x86)

Needed on all x86 operating systems if not already installed

dotnetfx.exe /q:a /c:"install.exe /q"

.NET Framework 2.0 (x64)

Needed on all x64 operating systems if not already installed

NetFx64.exe /q:a /c:"install.exe /q"

.NET Framework 2.0 language pack

Needed for all non-English Express Editions if not already installed

langpack.exe /q:a /c:"install.exe /q"

J# Redistributable 2.0

Needed only for the J# Express Edition on all operating systems if not already installed

vjredist.exe /q:a /c:"install.exe /q"

J# Redistributable 2.0 language pack

Needed for non-English J# Express Edition if not already installed

vjredist-LP.exe /q:a /c:"install.exe /q"

Lite Debugger Package (x64)

Needed on all x64 operating systems if not already installed

expdbgsetup.exe /q:a /c:"install.exe /q"

Main Express Edition package

Needed on all operating systems.  The exact command line depends on which Express Edition you want to install.

MSDN Express

Optional on all operating systems if not already installed

msdnixp.exe /q:a /c:"Install.exe /q"

SQL Express (x86)

Optional on all x86 operating systems if not already installed

SQLEXPR32.EXE -q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename=SQLEXPRESS SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=2 SQLAUTOSTART=1

SQL Express (x64)

Optional on all x64 operating systems if not already installed

SQLEXPR.EXE -q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename=SQLEXPRESS SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=2 SQLAUTOSTART=1

Additional notes about silent install of the Express Editions:

  • The packages should be chained in the order listed above because this is the order that Express setup will run them if you launch setup in full UI mode
  • All of the command lines listed above can be figured out by downloading the Express web download bootstrapper (for example, this package for Visual WebDev Express 2005), extracting the contents of the package, and reading through the file baseline.dat.  The combination of the Executable value data and the CommandLine value data for each component forms the command line that you want to use for silent installation.
  • If you look at baseline.dat for the Express Editions to form the command lines, you will notice that I removed the /watsongenman switches in the command lines that I listed above.  The /watsongenman switch is used to generate a log file that is sent as part of a Watson report for the Express Edition setup package when it is installed via full UI mode.  That switch is not needed when individually installing the components as I describe above.
  • To change from a silent installation to an unattended installation, change all instances of install.exe /q to install.exe /qb and change /qn to /qb for the main Express Edition and SQL Express command lines

<update date="4/11/2006"> Updated command lines for Main Express Edition packages - I missed the REBOOT=ReallySuppress and /qn switches from a few of the editions </update>

 

  • I second what Nick said previously. To get around the "rebootstub.exe" error, take Ixpvb.exe and use winzip or whatever to extract its contents into a folder. The syntax to install the VS05 Express portion of this would then be simply:

    msiexec /i vbsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress /qn
  • I am not able to silently install VC8 redistributables. Whats wrong??
    do you have any ideas? See below the syntax which i am using

    vcredist_x86.exe /q:a /c:"install /q"
  • Hi Haran - The vcredist_x86.exe and vcredist_x64 packages have a slightly different silent install command line.  You should be able to use the following:

    vcredist_x86.exe /q:a

    Let me know if this does not work for you...
  • I'm having problems with the silent install of SQL Express 2005 if an administratrive user is not logged into the machine.  It seems like there is some desktop interaction happening during the install as it does not complete if the administrative user that launches the install is not logged in.  I'm using the following:

    SQLEXPR.exe /wait /qn /norestart /lv
  • Hi Samjac - It sounds like you are running into a scenario that is similar to the customer who posted the comment at http://blogs.msdn.com/astebner/archive/2006/05/29/610435.aspx#610446.  I don't know why SQL setup would behave that way, but can you try to run SQL setup from a wrapper batch file or something like that instead of trying to launch it directly and see if that helps?
  • Aaron,

    Thanks for the information and this blog.  I tried the batch wrapper but that did not work.  One of my bosses found an article that I think explains the problem.  The SQLExpress 2005 install is looking for a HKCU key that won't be available unless a user is logged onto the machine.

    http://www.developersdex.com/sql/message.asp?p=1870&r=4699024&page=2

    A bug report has been logged and any work around ideas would be appreciated.
  • Hi Samjac - I checked with the SQL team and they have encountered issues when trying to launch SQL setup via runas.exe or as a scheduled task running as LocalSystem.  This issue is not exactly the same, but likely to be similar.  It also sounds like this kind of installation scenario that you describe is not "officially" supported.  I will let you know if I hear of any workarounds.

    Also, can you provide me a link to the bug report you submitted?
  • Aaron,

    I didn't get a bug report number as the channel we go though found this was a known issue.  I'll post if I find out any more details.
  • I've used these instructions to create network deployments for both VB and C++ and they deployed and work fine.

    The only problem I get is that when the user first runs them they get a message saying "The proper type library could not be found in the system registry...." and that an attempt to repair it had failed becuase they have insufficient permissions.

    I suspect that this problem is caused because the user under which it is running has limited permissions. If I log in as an administrator and run the program then the message goes away and the user is then able to run the progtam ok themselves.

    Does anyone know which type library needs to be registered?

    If I knew this then I could do the type library registration as part of the install.
  • Hi IanGSY - I'm not sure exactly which type library or libraries this error message is referring to.  You might be able to figure it out by using file and registry monitoring tools such as FileMon or RegMon from http://www.sysinternals.com.  You may also want to try to post a question on the MSDN Forums (http://forums.microsoft.com) and see if anyone there has any further advice.  I'm sorry I'm not able to be more helpful here.
  • I was having the same problem as someone had on April 10. I decided the simplest way to solve this was duplicate what the graphical installer was doing. I did this:

    1. Modify the "Main Express Edition package" command lines by adding a "/t" option to point to a temp directory of my choosing. For example for Visual Basic:
    ixpvb.exe /t:C:\InstallTemp /q:a /c:"msiexec /i vbsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress /qn"

    2. Create the temp directory "C:\InstallTemp"

    3. For the package I was installing I copied the same 44 files as the GUI program does to this temp directory, "C:\InstallTemp"

    4. Run the install program from this temp directory. For example for Visual Basic:
    C:\InstallTemp\ixpvb.exe /t:C:\InstallTemp /q:a /c:"msiexec /i vbsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress /qn"

    5. Delete the temp directory.

    This technique has worked fine with all five Visual Studio 2005 Express packages.
  • Question: I have been trying to follow the steps listed in some of your blog posts in order to create

  • Just a short note

    here you will find complete images for Visual ___ 2005 series:

    http://tinyurl.com/7hzwv

  • This guide is intended to serve as a collection of links to articles, tools, tips and tricks that explain

  • Is it possible to install into a directory other than the default C:\Program Files\...  Due to circumstances beyond my control, I need to install in C:\MSVC80.  Any ideas or pointers would be appreciated.  Thanks!

Page 2 of 3 (38 items) 123
Leave a Comment
  • Please add 3 and 2 and type the answer here:
  • Post