The official source of product insight from the Visual Studio Engineering Team
Setup is the first experience most of us have of Visual Studio, and in the Visual Studio 2012 we’ve made significant investments in improving your experience. Many of you have already told us you like our new setup user interface (thank you!). We have also been investing in ratcheting up the speed at which we lay bits down, improving the experience for non-English installations, and honing the experience you use to select which components to install.
Let’s start by looking at the last of these first. As many of you noted, the Visual Studio 2012 (11) beta didn’t have the capability to customize installation. Although most users select the default (which is to install the full product), a significant number of you customize the installation. During beta, we hid the customization option to help us gather more data on full installation performance and reliability. We’re happy to say that we brought back customization in Visual Studio 2012 RC. Based on the choices you make, the customization allows you to reduce your install size by about 2.5GB and about 25% of the install time.
During the beta timeframe we ran a survey of several hundred beta users and asked they would like from setup customization. The overwhelming answer was to improve VS performance by not having it load features that aren’t used, followed by reducing the complexity of the product and reducing on-disk size. We think we’ve gone a good way toward addressing these desires, but we know we can do more. We are very interested in how you’d like to see this look in future releases, what level of granularity you’d like, and what kinds of things you want to customize about your Visual Studio install. So please give us feedback on setup customization, either in the comments to this blog post, in the Forums, as suggestions on User Voice, or as bugs you log on Connect.
Customization isn’t the only investment: one of the most significant areas we’ve invested in is the speed at which setup lays bits down. Whether you’re installing Visual Studio Express products or a full installation of Visual Studio Ultimate, we wanted to shorten the amount of time it takes to get you coding. From setup perspective, we look at a couple of measures of performance. The first is how long it actually takes to complete a full installation of the product –about 35 minutes on average for a full installation of VS Ultimate from local media on test hardware representative of the average VS customer. We also look at the throughput we are able to achieve during installation – how long each VS package takes to install relative to its size. As an example, some packages that compress really well but are otherwise very simple like MFC maintain a throughput of up to 7MB/Sec; other packages that are small but need to place files in the global assembly cache or write a lot of registry keys may achieve throughput below 1MB/Sec. From beta to RTM our goal was to improve both of these measures: the amount of time it takes to install VS in absolute terms and overall the throughput.
To do this, we undertook several efforts. To start, at the beginning of the Visual Studio 2012 cycle we transitioned off of our old install engine onto a new engine that by itself is capable of maintaining faster throughput on simple packages than the setup engine we used in VS 2010. We also made a change early on to parallelize the download of the packages we’re installing as the installer is running so that much of the download time happens in the background while installing.
But that wasn’t enough. So we asked ourselves a pretty audacious question: between beta and RC could we cut 10 minutes (about 30%) from the installation?
For the last three months, that’s what we’ve been trying to accomplish. We found places in setup where we were calling the same function repeatedly where we didn’t need to. We unpacked the templates from VSIX packages and put them into MSIs to eliminate the double-decompression. We found several duplicate packages and, although the installation process wouldn’t install them, we removed them to save the seconds it would take to check to see if they were already present. And of course we reduced the number of custom actions.
So did we make our 10 minute goal? Almost: we eliminated a little over 8 minutes off of the installations in our performance lab before we had to begin locking the release down. For the rest of the release we’re going to focus on maintaining those improvements and setting ourselves up for a great RTM.
One more thing for users who install VS in a language other than English: Visual Studio 2012 supports language packs. Language packs make it much faster and easier to add an additional language to Visual Studio because you don’t need to download and install a full version to add a new language: you just add the pack for the language you want.
Please let us know how we are doing and how you’d like to see setup change in the future. We have a lot of good ideas already, and are always open to new ideas or to confirmation that we are prioritizing ideas correctly. As always, we are reading your comments on this post, watching for issues in the Forums, listening to your suggestions on User Voice, and reviewing any bugs you log on Connect.
David Guyer – Senior Lead Program Manager, Visual Studio Setup Team
Short Bio: David Guyer is currently the Lead Program Manager for Visual Studio Setup and has been working on deployment technologies in Visual Studio since Visual Studio 2002.
Can you choose programming languages, and also choose to not install SQL Express/LocalDB ?
Are there any setup options in 2010 that you don't have with 2012? If so, why would something that worked well be removed? Thanks.
Amazing work, guys! The improvements are phenomenal and I look forward to using Visual Studio 2012. Keep up the great work!
"Many of you have already told us you like our new user interface (thank you!). " ROFL!!!
How many is many? Dozen? How about thousands who utterly loathe it? Stop pretending, READ our comments, READ UserVoice!
Before installing VS11 RC, I had to uninstall VS11 beta. It wasn't that easy: lots of stuff were still there after running VS11 beta uninstall tool (SQL, .Net...)
I really appreciate the effort to make setup improvements.
There's a suggestion thread at User Voice that I think should be better addressed:
See the comment by Andrew McDonald · Jun 04, 2012 2:20 pm
This comment reflects an area that deserves special attention IMHO.
There are almost 40 installations in "Programs and Features" (sorry for I'm using Traditional Chinese version). I hope you can reduce them. Maybe Reduce to one installations, with it's own different features. Just like you can install them all in one setup, I hope I can uninstall them all in one installation item.
Maybe the SQL things should not be with Visual Studio, but I hope at least I can see them when installing.
Could you please tell us why you took away the language (C++, etc.) and SQL Server options when those options worked fine in VS 2010?? A simple answer will do. I know the Metro theme look was a mandate, was making all languages installed also a mandate?
"Many of you have already told us you like our new user interface (thank you!). "
Wow... you guys are either in denial or simply under strict control to make sure you do not stray from the company line.
My wife has watched me write code for over 15 years and tonight, when I finally got a chance to start my first new "Desktop" application in the RC, she looked over my shoulder and said "What the #$%^ is that???" So I showed her both the dark and the light themes and she walked away laughing... yes laughing AT you, not with you.
I understand that it is way too late to change this rediculous design, but between this UI and the Windows 8 disaster, you guys might want to bring your resume's up to date.
The customizing options in RC is confusing.
There is option for MFC, if I uncheck that, will I get ATL ? IIRC atlmfc is a single folder, will the headers still be there ? Can I still create console app that dont use MFC ?
There is Silverlight, but why install both SL4 and SL5 ? can I use only one ?
There is LightSwitch, isn't it based on Silverlight ? if I check LS while uncheck SL, will I still get SL ?
Options to check off SQL Express (have full SQL installed) and C++ plattforms (no need for Itanium for me) is what I use in VS 2010.
One entry in "Programs And Features" to deinstall the complete VS 2012 would be nicer than having to identify multiple packages which might have been installed by VS 2012
I only use C++ and C#, so +1 to Dean.
"Many of you have already told us you like our new user interface (thank you!)."
Actually, this is not funny. David Guyer, did you read the comments on the UI in this blog? How can you say with a straight face that many told you they like your new UI after doing that, without at least saying that many more told you they didn't like your new UI, too? What kind of a spin-doctor class you are all taking there?