July 14th, 2015

How to install Visual Studio to another directory when a pre-release is installed

Heath Stewart
Principal Software Engineer

VIIf 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.

  1. 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).
  2. 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
  3. 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}

Author

Heath Stewart
Principal Software Engineer

Heath is an application architect and developer, looking to help educate others to learn professional development. Besides designing and developing applications he enjoys writing about intermediate and advanced topics. Heath also consults for deployment packages and scenarios within Microsoft and for external customers.

1 comment

Discussion is closed. Login to edit/delete existing comments.

  • Keith Ewen

    This has been extraordinarily helpful. Thank you very much.