Instructions for chaining installation of Visual Studio 2005 and MSDN

I got a question from a customer who found this blog post describing how to chain silent installation of VS .NET 2003 prerequisites, VS .NET 2003 and MSDN.  They wanted to know what the equivalent set of steps would be for chaining silent installation of VS 2005.  There have been some modifications to how setup works behind the scenes in VS 2005, most notably the elimination of the separate step that used to be required to install prerequisite components for VS, so happily I can say these steps are much simpler than in the past.  Here are the steps for VS 2005 (using the same format as my previous post).

To start with you should stage Visual Studio bits to a network share so that you can use this as your installation source later on.  You can accomplish that with the following steps (also described in the VS readme located in the file adminreadme.htm in the Setup subdirectory on VS Disk 1):

  1. Create a folder on your server, such as \\server\vs2005

  2. Create subfolders named \\server\vs2005\vs and \\server\vs2005\msdn

  3. Copy the contents of all CDs labeled Visual Studio 2005 to \\server\vs2005\vs.  If prompted, choose yes to overwrite existing files.

  4. Copy the contents from all the CDs labeled MSDN Library for Visual Studio 2005 to \\server\vs2005\msdn.  If prompted, choose yes to overwrite existing files.
    NOTE: You can substitute a different MSDN Quarterly Library for the version of MSDN that shipped with Visual Studio 2005 if you choose

Now that you have a network image, you can create the unattended INI file to install VS 2005 and MSDN using the following steps:

  1. Locate a test computer that has the same operating system that you want to deploy Visual Studio to in your network, and make sure that it does not already have Visual Studio 2005 installed

  2. Install .NET Framework 2.0 on your test computer (because this is required for creating an unattend file for Visual Studio in the next step)

  3. Run \\server\vs2005\vs\setup\setup.exe /createunattend \\server\vs2005\datafiles\vs.ini /vsupdate=\\server\vs2005\MSDN\setup.exe /vsupdateargs=”qn”

  4. Open \\server\vs2005\datafiles\vs.ini, go to the [PostSetupLaunchList] section and change “””qn””” to /qn

  5. Go to a clean computer without Visual Studio 2005 installed and run \\server\vs2005\vs\setup\setup.exe /unattendfile \\server\vs2005\datafiles\vs.ini to test the unattended installation process

There are a couple of gotchas that I have seen that you should keep an eye out for when following these instructions:

  • Make sure to note the extra \setup\ directory for the Visual Studio setup.exe in the steps above.  Unattended installation will not work correctly if you run the setup.exe in the root of the \\server\vs2005\vs folder; you must use \\server\vs2005\vs\setup\setup.exe.

  • Make sure that you have write permission for the location that you create your data file at in step 3 (in this example I used \\server\vs2005\datafiles).  You will get an error if you try to create the data files on a share that you do not have write permissions for.

  • Make sure that you create the INI file on a computer that does NOT already have Visual Studio 2005 installed.  If you have VS installed, you will end up creating an INI file for a maintenance mode update instead of an initial install of VS.

  • The INI file for VS is unique to each version of VS (such as Pro, Standard, Team System), and also unique to the OS that you want to install on (Windows 2000, Windows XP, etc).  Make sure that you create INI files on computers that match what you will eventually be deploying to.

There is an advanced trick that you can use when creating this unattend script as well:

  • If you want to perform a full install of MSDN to the local hard drive instead of a default installation, you can read the steps at this blog post to learn how to update your vs.ini file to call MSDN setup with the correct parameters to accomplish this.

In the VS 2003 instructions there was an additional advanced trick regarding waiting for the setup process to exit and checking the return code.  The workaround I listed in my previous post is not necessary in VS 2005 because setup now has specific logic to not copy itself to the %tmep% folder and start a new process if it detects it is being run in administrative installation mode.


Comments (44)

  1. Visual Studio Team System

    Yesterday marked the one-year anniversary of the public announcement of…

  2. Jonathan says:

    I have been trying today to get the unattended install for MSDN library working after a successful unattended install of VS 2005 Beta 2. I have tried the following commands on the command line in the MSDN folder on the local drive:

    setup.exe /qn

    setup.exe ADDLOCAL=ALL /qn

    setup.exe "ADDLOCAL=ALL" /qn

    setup.exe TARGETDIR=E:MSDN /qn

    setup.exe "TARGETDIR=E:MSDN" /qn

    I have also tried replacing the /qn with /passive so that I have a visual response. The behavior is that msiexec loads for about 3 seconds before it unloads without performing the installation.

    Any ideas what is happening?


  3. Jonathan says:

    As you can tell, I am new at this. I performed the above task again with logging on and discovered the cause of my problems.

    It turns out that the MSDN setup program thinks that a component is already installed, and therefore, it will not let me modify the path. This results in an error indicating that there is not enough disk space on C: (which there isn’t).

    To contribute to this line of thinking, when I first pulled up the help syntax (setup /?), I was prompted to install something before it would display it, and I selected yes. Maybe this is why it thinks it’s been installed?

    However, when I start setup and go through the GUI installer, the prompts are all for a new installation, and I am able to change the install path and successfully install.

    I’m trying again on a fresh system to see if this problem goes away there. But if you have any suggestions, I’m happy to read them.

    Thanks again.

  4. Hi Jonathan –

    It looks like something weird is going on with the MSDN setup.exe and the command line switches it supports. I’m going to try to repro this on my test machine and see if I can figure it out. In the meantime, you should be able to do an unattended MSDN install by using the following command line:

    msiexec.exe /qb /i msdn.msi

    I’ll post an update with what I figure out about the setup.exe switches….

  5. Hi again Jonathan – I didn’t see your 2nd comment when I posted my 1st reply. I will still investigate the setup.exe issue because I’m seeing the same behavior when I run setup.exe /? (and that seems like a bug to me, /? should show usage and not make you install something first…maybe you can post it on if you have a chance? I’ll also tell the MSDN team)

    Regarding your other question about the path being forced to C: – this is by design. MSDN shares some components with Visual Studio, so if VS is already installed to the C drive then MSDN will require you to install to the same location. If that location is short on disk space that makes this scenario pretty bad unfortunately 🙁

  6. Jonathan says:


    Thanks for your replies. I will post the MSDN issue on the product feedback site.

    Regarding MSDN forcing to C:, Visual Studio was installed to drive E: – with the exception of the components that are forced to C:, such as msbuild, sourcesafe, primary interop assemblies, and a handful of other things.

    I am working on a fresh virtual PC image today with rollback capabilities, so I should be able to get through multiple attempts and hopefully a successful install.

  7. Hi Jonathan –

    Unfortunately, it isn’t necessarily as easy as choosing to install VS to a drive other than C. There are some components that VS installs to <system_drive>Program FilesCommon Files even if you choose to move the main VS install location to another drive. I believe this is what will end up causing MSDN to not allow you to change the path during setup. One option you could try on that machine is to run MSDN from source so it won’t require so much disk space.

    I wrote a blog articlea while back that kind of explains what is happening behind the scenes that causes the installation path to not be changeable if you’re interested in reading more. You can find it at –

    Also, I tried a couple of VS 2005 beta 2 install scenarios last night and running the MSDN setup.exe /qn worked fine for me (assuming I had enough disk space on C).

  8. Jonathan says:


    I understand that not everything in the VS 2005 and MSDN packages will get installed on the secondary drive.

    However, what I am trying to get around is the difference of 1.78 GB of data that gets installed into the specified target directory during an MSDN installation.

    When I execute the command:

    e:installationsvsts2005msdnsetup.exe TARGETDIR="E:Program FilesMSDN" ADDLOCAL=ALL /qn /log E:InstallationsVSTS2005Unattendedmsdn.log

    the installation completes, but everything is still installed on C: (with 1.78 GB of files in the default target path of C:Program FilesMSDN). An odd occurrence is that the E:Program FilesMSDN folder also gets created, but no files get installed there. I see in the log file where the package collects the TARGETDIR from the command line, but it does not use it.

    On the contrary, when I install through the GUI and modify the path through the form, the 1.78 GB of files is installed to E:Program FilesMSDN), while the components that must be installed to C: are still placed there (according to the docs, about 1 GB of space). This is the installation result that I am hoping for with an unattended install.

    So my inclination is to try and find why setup behaves differently between an unattended install versus a GUI install with regard to the target directory.

  9. Hi Jonathan –

    If possible, could you zip and send me the MSI verbose log files from each of those installations (the unattended one and the UI mode one)? There is likely some difference in the command line switches that is causing the non-default unattended install to behave incorrectly, and the log file should let us figure this out. You can email me at aaronste (at) microsoft (dot) com.

  10. I got a question from a customer who is trying to use the instructions in this blog post to perform a…

  11. mareg says:

    It works great for me.

    As you said, the setup created on Windows 2000 doesn’t work on Windows XP, but when I create a setup from XP, it works on Windows 2000 too ! 🙂

  12. Tri Huynh says:

    Is there anyway to use QB? I tried doing a QB and it didn’t work. I want to give users a progress bar at least.


  13. Ben says:

    What if the target computers have VS2003 already installed ? Do I have to make a separate .ini for them ?

  14. Mike says:

    Hi Aaron,

    I have a question about the unattended installation of Visual Studio 2005. How will this work if VS 2003 is installed on the pc already? Does this work like an upgrade or does it wipe VS 2003 out completely and install a fresh copy of VS 2005. I am looking to install this to 30 computers and need to know it’s behavior before I proceed.

  15. Hi Mike – VS 2005 is designed to work correctly in side-by-side scenarios with VS6, VS .NET 2002 and/or VS .NET 2003 already installed on the system. You will be able to use the unattended installation instructions listed above even if your systems have VS .NET 2003 installed. Please contact me using if you run into any trouble getting this to work in your scenario.

  16. pliant says:

    I’m trying to use /Qb-! for the Visual Studio installation but it doesn’t seem to be working.  

    Instead of /vsupdateargs="qn" in step 3 of your instructions I used /vsupdateargs="qb-!".  

    And then edited the vs.ini file as stated in step 4 ("""qb-!""" to /qb-!.  However, it still installs completely silently as if it is using /qn.  Is there anyway to get the progress bar to appear??

  17. Hi Pliant – in my experiences with these command line parameters, the arguments that you pass to vsupdateargs end up getting passed directly to the MSDN setup.exe package, but I haven’t tried /qb-! before.  Can you please try it with just /qb and see if that works?  There could be some kind of weird escaping logic in the VS setup code that doesn’t work well with the – or ! symbols.  Also, you may want to try running MSDN setup.exe directly with these switches to verify that they are accepted by the MSDN setup in the first place before trying to integrate the switches into a chained install with VS.

  18. IP says:

    Quick Question:

    When you editing the vs.ini to change """qb-!""" to another vairable are you enclosing the change as """qb-!"""


  19. Hi IP – I’m not sure I understand your question.  Do you want to try to change the """qn""" parameter that I describe above to """qb-!"""?  I am not sure that the MSDN setup.exe accepts /qb-! as a command line parameter, so you might want to try running MSDN setup directly with that switch as a proof-of-concept first…

  20. IP says:


    Actually, It was simply asking whether you still need to enclose which ever parameter you use inside the """parameter""" or simply remove the """?

    This is what I have in my ini file.

    Is this correct as it did not seem to work?


    \servernamevs2005msdnsetup.exe /qb

  21. Hi IP – I just tried a scenario running MSDN setup.exe /qb directly and it does accept that as a command line parameter.  So you should be able to change step 4 in the 2nd set of steps listed above to read as follows:

    4.  Open \servervs2005datafilesvs.ini, go to the [PostSetupLaunchList] section and change """qb""" to /qb

    When you try that, what do you see happening on your system?  Does MSDN setup launch in full UI mode?  Or does it never launch at all?

  22. Tiouss says:

    Hi Aaron and thank you for this nice post !

    I’m just wondering if it is possible to use relative paths instead absolute ones.

    Thanks again.


  23. Hi Tiouss – That is a good question.  I don’t know of any reason why relative paths would not work, but I also haven’t tried it myself.  If you have a chance to try it, please post back the results…

  24. Last week, someone asked me about how to perform automated installations of the Visual Studio 2005 Express…

  25. Question:

    I tried to install Visual Studio 2005 using the unattended installation instructions that…

  26. A few folks (both inside and outside of Microsoft) have contacted me asking for instructions for how…

  27. I have previously posted instructions for performing a silent installation for Visual Studio 2005 and…

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

  29. mfearby says:

    I’ve tried what you suggested -ie, run setup on a clean machine with no software to get an unattend file, and now when I try to run it on some other computers (that have software installed on them), I get the following error message:

    "In order to complete installation of this application, you need to install or upgrade the Microsoft Visual Studio 2005 Document Explorer Click OK to install. Click Cancel to exit Setup."

    Of course, I am normally executing this via Altiris, which aborted with an "Error -1073741819", but if I run the same command-line in "Start, Run" myself, the first error message (above) is what it shows.

    I did a search for the document explorer, thinking that I could install it first, silently, before MSDN, but can’t seem to find a setup file for it. How can I silently install this mysterious Document Explorer as well?


  30. Hi Mfearby – I haven’t seen this behavior in the past.  The unattend INI file should contain instructions to tell VS 2005 to automatically chain in the Document Explorer package as long as that was not installed on the system that you created the INI file on.  Can you please double-check that the INI file is being created on the same OS that you are going to install it on, and also that Document Explorer wasn’t already installed on that system prior to credating the INI file?

    If you would like to pre-install Document Explorer yourself, you can find instructions for doing that at (in section 2.2).

    Hopefully this helps.

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

  32. We found an issue over the holidays related to unattended installations of Visual Studio 2005 on Windows

  33. mfearby says:

    I did try doing a "Dexplore.exe /Q" (as suggested by Dexplore.exe /?) before the main call to the main SetupSetup.exe but it still pauses to complain about the Document Explorer.

    The machine I used to create the unattend file was a bare install of XPSP2 with the latest updates (at the time I created it) but the machines onto which I am now installing it are based on the bare XPSP2 with latest updates but has quite a bit of educational software on it (no development software, though).

    It seems to me that this complicated "unattended" setup for VS2005 is just a bit too fragile. It would be nice if Microsoft provided a "/all" switch or something that would just do it’s very best to do a complete installation without having to determine what gets installed on one system to then duplicate that particular installation on another system. This is about as evil as trying to rip an old EXE into an MSI -i.e., very dodgy and flakey.

    I know it’s not your fault, and I do appreciate the assistance you have provided on your blog, so please forgive me if it sounds as though I’m venting at you. I just can’t believe that silent/unattended installs all have to be so different from each other and so fragile. It doesn’t have to be this difficult, IMHO.

    My next course of action is to download the image from the classroom onto a machine, with all the educational software, and record an unattended installation on the same build. This will probably mean that this particular "unattended" install won’t be any good for our other classrooms, but at least it will mean I don’t have to visit 16 machines and run the setup myself.


  34. Hi Mfearby – If you take a look at, it contains the silent install switch for Document Explorer.  It needs to be dexplore.exe /q:a /c:"install /q" and not the one that you tried.

    I still do not understand why the INI file is not attempting to install Document Explorer, I have never seen a case like that (in fact, I’ve seen the exact opposite most times – it will attempt to install it even if it is already present).

    I agree that this INI-based approach is complicated, and fortunately there are some simplifications in the works for VS 2008, but of course those won’t help for the scenario you’re attempting currently.

  35. mfearby says:

    I re-ran the /createunattend deal and even with a specific, silent, installation of the Document Explorer before calling the main setup, it still pauses to complain about the need to install the Document Explorer and to click OK to install it or Cancel to exit. Even if I click OK, Visual Studio 2005 or MSDN don’t end up on the computer. These are my command-lines:

    \servershareVS2005msdnDExplore.exe /q:a /c:"install /q"

    \servershareVS2005vsSetupsetup.exe /unattendfile \servershareVS2005datafilesvs.ini

    I’m now at the point of having to log into 16 computers to meet a deadline. I am looking forward to the new Visual Studio and hope to god that the silent installer is much better.

    Thanks for your help anyway.

  36. Hi MFearby – Can you please send me a copy of your INI file and the log files from a failed silent install on your system so I can take a look at it and see if I can figure anything out that way?  The logs created by setup are listed at

    You can send them to Aaron.Stebner (at) microsoft (dot) com.

  37. mcslemon says:


    Thanks for the excellent guide!

    Is there a way of having an unattended but visible install? A totally silent one isn’t really suitable for our installation methods. I’d like my staff to see what is happening so they know when the process has completed.



  38. Hi Mcslemon – Unfortunately, the unattended mode for Visual Studio setup only supports a fully silent installation and not an unattended one where a progress bar appears during installation.  If you want to support this, you would need to install each VS component (prerequisites, optional components, MSDN, etc) individually and specify unattended switches for each of them.  I’m sorry for the hassle.

  39. carlwh says:

    Hi Aaron,

    I’m with the IT department at my university, and I’ve been given the task of creating an unattended installation of Visual Studio 2005 Team Edition for Software Developers.

    I’ve gotten as far as creating the .ini file for the unattended install using the /createunattend switch. However, the installation quits almost immediately after it begins when I run it using the /unattendfile switch.

    By looking at dd_depcheck80.txt I can tell that the check for the prerequisites is run each time I run setup.exe. I won’t paste the entire thing here, but there are many times where this line appears after the name of each prereq:

    Component will not be installed because depcheck can not enumerate features that will be installed.

    As a result, under the Installation Summary heading, depcheck has decided that it’s not necessary to install anything. Some are for good reason (a later version already exists), but many (that I know for a fact are not present on my machine) are because they have been marked by depcheck as "not to be installed" for some reason. The log indicates that the session has ended and nothing is on the list of items to be installed.

    Nothing gets logged in dd_vserror80.txt or dd_vsinstall80.txt. But what I find interesting is that a separate log file is generated that I can’t find any information on anywhere I’ve looked. It appears that before setup.exe quits, it creates (in the same directory as the others) AdminBaselineErrorLog.txt which contains only this:

    Setup discovered the following problems:

    1. The file unattend.ini was created for  operating system. Please contact your administrator to obtain the file for your operating system, Win XP.

    2. The file unattend.ini was created for  processor type. Please contact your administrator to obtain the file for your processor type, x86.

    I understand that unattend.ini must be created under the same OS and processor type as it is intended to be installed on. I have done that. In fact, I created the .ini with the same machine that I am attempting to install on. Why it doesn’t tell me what OS it thinks I’m on, I don’t know.

    Here is where I’ve been halted in my efforts. If there’s any insight you can offer, it would be greatly appreciated.

    Thanks again,

    Carl Hartenstein

  40. Hi Carlwh – I haven’t heard of this type of error unless the INI file was created on a different OS type or processor architecture than the OS that installation is being run on.  Did you make any modifications to the INI file prior to running it in /unattendfile mode?  Could you please send me a copy of your INI file and the adminbaselineerrorlog.txt from your system and let me know the exact OS you created it on and that you’re trying to install on?  You can send this information to Aaron.Stebner (at) microsoft (dot) com.

  41. dharric says:

    I’m having the same issue as carlwh. I’m also trying to run the installation on the same os that I created the ini file off of. As a note I’m doing this off of an imaged build. Could this have anything to do with it? Also VS2003 using the same methods works without any problems.

  42. Hi DHarric – I ended up working with Carl via email and we figured out that his issue was caused by attempting to run setup in unattended mode and passing a relative path instead of a fully qualified path to the INI file.  I described this scenario in more detail at

    Can you please check and see if this is the issue affecting your scenario as well?

    If this isn’t the same problem, can you please email me and send me the log files from your scenario, and also send me the full command lines you are using to create the INI file and run setup in unattended mode?  You can send this information to Aaron.Stebner (at) microsoft (dot) com.

  43. abhishek_walia says:

    Hi Aaron,

    I’ve successfully created the INI file for silently installing Visual Studio Pro 2005 as you’ve mentioned, but I’m unable to install the application using that ini file. The installation runs for a few seconds but installs nothing. Also, I can see a successfull installation in eventviewer but actually nothing gets installed. Please help.

    Thanks in advance.


  44. Hi Abhishek_walia – Can you please list the complete command line that you used to create your INI file and to install it?

    Also, do you see any log files created by VS 2005 setup in your %temp% directory in this scenario?  Those logs should give a better idea about why the installation process isn’t actually installing anything.