About Windows Installer, the .NET Framework, and Visual Studio.
Administrators and developers who need to detect if Visual Studio 2012 is installed on a machine can use similar keys as those used for past releases like Visual Studio 2010. In general, these detection keys are always found in the 32-bit registry hive with a pattern like:
So if you needed to detect if VS2012 Ultimate is installed, you can check if the “Install” registry value is set (will always be a REG_DWORD with data set to 1) in the following language-independent registry key:
What has changed from previous releases like VS2010 is that Ultimate contains the Professional and Premium editions, just like Premium contains Professional. This is handy because in the past if a developer’s add-in (for example) supported Professional and greater, the developer would have to check at least three different registry keys. Now to detect Professional or greater you need to only check in the following registry key:
We’ve also added the complete product version to the registry key, when before this was only the build and revision numbers.
Very helpful! Is there a way to detect if the "Product Updates / Extensions" feature is enabled or disabled within the registry? For example, if an enterprise chose to turn off product updates within Visual Studio and push it out instead through WSUS?
@Matt, Visual Studio 2012 does not use Microsoft Update / Automatic Updates for VSUpdate - only for general distribution releases (GDRs) for servicing. We currently have no policy in place to block VSUpdate, but are considering improvements to this experience for future releases.
How can I detect the install location for Visual Studio 2012 Express ?HKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\wdexpress\Servicing\11.0 only helps in detecting it being installed.
@Mita, we do document the registry values for the install paths to Professional, Premium, and Ultimate because those are extensible (the documentation for VS2012 is being updated now). I'm curious as to why you'd need the path to Express (which would be similar) since it can't be extended.
Any updates to the above detection keys, to detect if VS2012 has Update 1 (or higher) applied to it?
The SPName still says RTM, and the version is still 11.0.50727, after installing Update 1.
Well I need item folders for VB 2012 Express and C# 2012 Express? For 2008 and 2010 it could be found at:
Can you tell me where are these keys for 2012 Express?
@Momchil, there are no separate Express editions for languages. Instead, you can query for the VS item and project templates roots under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\VSTemplate (separate subkeys for each of items and projects) and then put language-specific templates into the right subfolders underneath the directories listed in those subkeys.
Heath, if I need to check for iso/intShell or Pro or Prem or Ult, can I just use Ultimate then?
@rowbot, you would need to check for the smallest product that you support, so you'd check for IntShell or IsoShell to see if any of them all the way up to the Ultimate edition is installed.
MinShell < Int/IsoShell
MinShell < Pro < Premium < Ultimate