Take the 2-minute tour ×

Why does Visual Studio 2010 require installation with MSI and reboot just in order to make it work, where Eclipse, which is based on similar architecture (JVM instead of the CLR) requires just pasting the files somewhere on the disk.

I can accept having to install .Net 4.0 through MSI (just like Java) but why can't the Visual Studio itself be "installed" like Eclipse does?

share|improve this question
add comment

3 Answers

up vote 5 down vote accepted

I believe that a full install includes things like MS SQL Server, which has components that run as services. I'm not surprised if they don't worry too much about making a developer reboot rather than arrange to properly shut down those services before the install and restart them after.

Also, a lot of their developer products have historically tweaked the PATH and other environment variables, and rather than take the support calls from people eager to dive right in and see Hello World work out or the box, they seem to prefer forcing a reboot as the easiest way to guarantee that the command prompt and the running copy of Explorer agree on life.

share|improve this answer
There may also be updates to the CLR runtime that would require existing applications to be stopped first. –  devstuff Aug 9 '09 at 4:10
add comment

Is a restart such a big problem for you?

Visual Studio is a very complex set of software which comes with loads of extras like Microsoft SQL Server, Crystal Reports, etc.. It also needs to register itself as a debugger and many DLLs, which also may cause a system restart. Eclipse does not register a global application debugger nor registers any DLL.

Furthermore is the .NET architecture completely different from the Java architecture, you cannot compare such abstract pieces of frameworks.

share|improve this answer
add comment

There are probably a plethora of reasons. However, based upon the installation of previous version of Visual Studio, one reason is the over-writing of certain DLLs that may be in use.

For example, the the C runtime library (dll) may currently be in use by some processes. The reboot is necessary so that a run-at-boot script can copy over the DLL (with a newer version) before any process loads the DLL.

share|improve this answer
add comment

Your Answer


