If you’ve installed pre-release versions of Visual Studio – or even another edition of the same release – you may find you can’t change the installation target directory. This is because once a set of shared components is installed, we install all the other components to the same directory structure. When you have multiple editions installed, this save disk space since shared files occupy the same location on disk – not to mention results in faster install times since Windows Installer doesn’t copy the same bits again.
And while we do support build-to-build upgrades, those shared components are already installed so the choice to relocate components is disabled.
Even if you’ve uninstalled previous releases, you may find this option disabled. Some other products that integrate with Visual Studio installed and use these same shared components, and would have to be removed too.
Solution
The general solution is to find the products that also installed these shared components and remove them. The example below is for Visual Studio 2015, and I will list the relevant component GUIDs for other releases below that.
Warning: This will remove all components regardless of whether other products require them. This may cause other products to function incorrectly or not function at all.
- Download and install http://psmsi.codeplex.com. These are general-purpose PowerShell cmdlets I created for all sorts of development and troubleshooting operations for Windows Installer-based installs. You do not need to elevate to install them, though if you pre-elevate you can install them per-machine (by default they are per-user).
- Open an elevated PowerShell command prompt and run the following to discover which products have installed the key shared component:
get-msicomponentinfo '{777CBCAC-12AB-4A57-A753-4A7D23B484D3}' | get-msiproductinfo
- If you’re fine with uninstalling all the listed products (especially given that you’re probably going to install RTM next), run the following:
get-msicomponentinfo '{777CBCAC-12AB-4A57-A753-4A7D23B484D3}' | get-msiproductinfo | uninstall-msiproduct -properties IGNOREDEPENDENCIES=ALL
Other releases
Including Visual Studio 2015, the component GUID for each of these “vertical integration” components are listed below. Replace “{777CBCAC-12AB-4A57-A753-4A7D23B484D3}” above with the GUID from the table below for the release you’re trying to upgrade.
Release | GUID |
---|---|
Visual Studio 2015 | {777CBCAC-12AB-4A57-A753-4A7D23B484D3} |
Visual Studio 2013 | {56E09E41-21B6-4F87-8D60-0787D028ECDD} |
Visual Studio 2012 | {DB786F13-64A8-45D7-8C03-0E819DF9F7B3} |
Visual Studio 2010 | {01696F98-947C-4CF9-8BD3-ABE70332FDED} |
This has been extraordinarily helpful. Thank you very much.