Create a "remove all remnants of Visual Studio from your system" program.
I'm writing this on behalf of the thousands of other Visual Studio users out there who have had nightmares trying to uninstall previous versions of VS. Thus cumulatively losing hundreds of thousands of productive work hours.
During this year, I had installed the following programs/components on my system:
* Visual Studio 2012 Express for Desktop
* Visual Studio 2012 Express for Web
* Team Foundation Server Express
* SQL Server Express
* SQL Server Data Tools
* LightSwitch 2011 trial (which created a VS 2010 installation)
* Visual Studio 2010 Tools for SQL Server Compact 3.5 SP2
* Entity Framework Designer for Visual Studio 2012
* Visual Studio Tools for Applications
* Visual Studio Tools for Office
* F# Tools for Visual Studio Express 2012 for Web
Two weeks ago I discovered that third-party controls can't be added to the Express versions of VS. I'm disabled and live on a fixed income, so spending $500 for the Professional version, in order to continue my hobby programming with a third-party control, was a tough decision. But I bought it.
When it arrived, I figured it would take an hour or two to remove the above programs and then I could install the Pro version. I wanted to have a clean file system and Registry for the new install of VS Pro.
It's now SIX DAYS later, and my spending 12-14 hours a day working on this alone. Removing these programs was the biggest nightmare I have ever faced with Microsoft products in my 30 years of being a Microsoft customer. Each one of these products automatically installed 5, 10 or more additional components, along with many thousands of files and individual Registry entries.
It took me four days alone, just to successfully remove the LightSwitch 2011 trial, and the entire VS 2010 product it installed. Restoring a 600 GB disk drive (5 hours) from backup after every removal attempt failed miserably. I finally gave up, spent 6 hours downloading the entire VS 2010 ISO and installed it. Only then, was I able to successfully uninstall LightSwitch 2011 and VS 2010.
As for the remaining products listed above, the uninstall programs do NOT UNinstall everything that they automatically INstall. Every single, automatically INstalled component, had to be removed manually, one at a time. Along with manually creating a System Restore point before each removal attempt, in case it failed. In total, I spent 12 hours uninstalling the remaining products.
I have a Registry search program where I can enter a search string and it will list ALL occurrences it finds in the Registry. I checked "visual studio", "visualstudio", "vbexpress", "vcexpress", "SQL Server", etc. I never finished searching for all the possible Visual Studio and SQL Server strings because the results being returned were eye-popping. Each search was returning 1,000, 3,000, even 7,000 individual Registry entries that had NOT been removed by the individual uninstall processes. This is TENS of THOUSANDS of never to be used again Registry entries that these programs simply left behind. The size of my Registry file is now a stunning 691 MB!
All of this frustration and wasted time is completely avoidable! And my case is not "isolated". There are hundreds of thousands of hits on Google regarding this problem, that point to Microsoft forums, MS Blog sites, and many independent Windows developer support forums on the web.
Microsoft really should provide an uninstall program that actually works, by UNinstalling everything it INstalls -- for each product it sells -- including Visual Studio. The downloadable (from Microsoft) uninstall program for VS 2010 does not work correctly and does not remove everything that VS 2010 installs.
When a program installs multiple individual components, tens of thousands of files and Registry entries, it SHOULD have an uninstaller that removes ALL of this, automatically, just like the install program. The OS and Registry keep track of dependencies and you folks know what the removal order should be for all of these products. So the team that creates the INstall program for each product, should also create the UNinstall program. And, the product should NOT ship until this program works correctly and fully.
You have ONE install program for each version of Visual Studio, that asks the user what they want to install and then does it ALL automatically. You should also have ONE uninstall program that does the same thing in reverse...
* Collect info on all the VS-related products and components currently installed
* Ask the user what they want to remove
* Determine if their selections make sense
* Check for dependencies by using your knowledge and experience, along with the computer's stored information, and warn the user as needed
* Decide on the removal order
* Then do it ALL automatically -- removing ALL files and ALL Registry entries
When you release a new product version, ADD the new version and additional decision logic to this existing program, do NOT create a new uninstall program. This way, the user can also remove previous version products, components, etc. ONE uninstall program *should be* able to uninstall every version of Visual Studio released in the past 10 years, along with every single component that was available with it, AND all of the associated files and Registry entries.
Please don't tell us why it CAN'T be done. Rather, figure out a way to do it, and then make it happen, just like every other software company out there has already done for their products. Even FREEware providers have better uninstall processes than Microsoft. This is a sad state for Microsoft and it should be rectified SOON.
Thank you very much for your feedback. We are aware of this issue and we are evaluating whether we are able to address it in a future release. In the meantime, have you tried our uninstall /force feature? You are able to use this feature even if you have already uninstalled Visual Studio:
I understand that this does not completely meet your needs but I am hopeful that it will help resolve some of the issues you described above.
Thanks again for taking the time to provide feedback.
Visual Studio Program Manager
Yep, Visual Studio installation is a nightmare. Often the "uninstall" fails with strange errors, the new installs do not work, you must search for registry hacks... Otherwise Microsoft seems to put effort into "one button installation" and "metro style" visuals. I think they should really fix their priorities. I just failed to uninstall "Remote tools for Visual Studio 2012" and even if VS 2012 "uninstalled" without errors, I was left with 700MB still there, including shortcuts to devenv.exe which was also there, but obviously not working any more. Now the VS 2013 installer is giving fatal error. Really nothing new with the recent VS versions...
Please show the number of new registry entries created when comparing a registry dump to text of 1) a clean windows 7 installation with all of the latest service packs and 2) the same machine with only VS 2012 installed and the latest VS 2012 update.
VS should use the following registry sub-trees
1 for user settings (one sub-tree per VS user on the machine)
1 for Visual Studio 2012 configuration
X for com components
VS should have 1 entry in the add/remove programs, 1 for SQL Server desktop if installed, and 1 for each major application. It would not be helpful for each sub-component of VS to have its own entry in add/remove programs.
- a. Consider scanning the VS exe directory for discoverable components instead of the registry to handle the functionality differences between professional, ultimate, ...
- b. Consider migrating from com based interconnects between binaries to a discover, load DLL on demand and run on demand model
- c. Store user level settings in an xml file in the user's application data directory
This will be greatly appreciated.
This answer sucks. From the beginning of July 2013 until March 2014, and still no answer? My client is paying me $1,000/day to fix this s#^t. And I'm supposed to be implementing product, not dealing with this cr@p.
Gilmer van der Hak commented
Is this solved already?
Henry Eriksson commented
Yeah, I'm sitting here manually removing each instance of Visual Studio remnants. Please make the option to take it all away at once reality!
Stephen Leary commented
Completely agree. The installer also installs SQL Server even if you choose not to install it.
Ugh I am living with this **** now. Visual Studio 2013 Express Installer is hanging and now 2012 can't start. The link the "Visual Studio team" provided doesn't give me the installer for 2012 anymore. Infact even a search on microosft's site, I can't find the old installer. So now even the sanctioned Microsoft instructions don't work.
Sigh. Format reinstall. Atleast 8.0 installs fast.
i have same issue, uninstaller didn't work and my system is getting unstable.
i have VS2012 and VS2013 preview but i couldn't uninstall any of them.
i tried upper link but no luck , banner just appeared and disappeared without any other action.
Think yourself lucky - I have VS 2012 and the2013 preview installed and there are no uninstall options in the Control panel Program features at all!!
I've rebuilt from a clean OS installation three times in the last two years because VS and SQL Server would not completely uninstall from my development machine. This was downtime during normal business hours for non-hobby work.
1. Install VS and all of its subcomponents in the same directory tree in the OS
2. Install VS and all of its subcomponents in the same rebgistry subtree with a common root entry
3. Minimize the amount of registry entries for VS and its tools.
4. Minimize the number of com elements registered for VS and its tools.
Please drastically reduce the need for com components in VS. This is equivalent to landing all DLLs in the windows directory with all of the well known problems.
I've had the same experience with SQL Server 2008 R2.
Microsoft, this would be really great and I think would help you to have a better image with your customer.
And I am pretty sure it is not That complicated, if visual studio can grab all these ****** dependencies during installation, if can remove them during the uninstall process, obivous logic in my opinion.
i just uninstalled all the junk entries that vs put there. coming up next: 14 entries that all start with "microsoft sql server..". why oh why didn't i listen and install this **** to a vm?
Michel Bretschneider commented
That's what VMs are for, aren't they? (ok, that's no help at all)
Even in the VM case I wished a tool like that, as even my "Dev-Preview" VM gets cluttered over the time and regularly needs to go back to an earlier snapshot (killing an amount of local work if I had forgotten to actually push the commits to the remote repo).