Unable to launch Visual Studio 2015 IDE after removing Update3
Visual Studio 2015 IDE can't be launched after removing Visual Studio U3. In the task manager it shows devenv.exe but there is no UI availavle on the screen. If I launch VS IDE again, the behavior remains same and the task manager shows two instances of devenv.exe. Even if I repair VS 2015, it doesn’t make any difference.
Post investigation, it is found that the issue occurs due to mismatched binaries.
Microsoft.VisualStudio.Imaging.dll C:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Imaging\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Imaging.dll Yes N/A Loading disabled by Include/Exclude setting. 30 14.00.25125.3 6A7A0000-6A83C000 [0xF70] devenv.exe [1] DefaultDomain
Microsoft.VisualStudio.Utilities.dll C:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Utilities\v4.0_14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Utilities.dll Yes N/A Loading disabled by Include/Exclude setting. 19 14.00.23107.0 6B310000-6B3FE000 [0xF70] devenv.exe [1] DefaultDomain
Here the component Microsoft.VisualStudio.Imaging.dll didn’t get reverted back to RTW. As per the VS logs (using VS collect tool):
• Both VSUpdate and MicroUpdate patches are now absent in the “view installed updates” section of ARP
• But, I still see those two patches applied to a small number of MSIs (full list of MSIs they’re applied to is below)
As per the MSIINV output,
{030A6785-C3A9-37DA-8530-444C320629FA} Microsoft Visual Studio 2015 Shell (Minimum)
Package code: {19E2D78C-2716-44EF-B992-E383D631C8F3}
Install date: 2016.09.02
Version: 14.0.23107
Publisher: Microsoft Corporation
Assignment: Per-Machine
Language: 1033
Package: vs_minshellcore.msi
Local package: C:\Windows\Installer\87217e.msi
Installed from: C:\ProgramData\Package Cache\{030A6785-C3A9-37DA-8530-444C320629FA}v14.0.23107\packages\vs_minshellcore\
Last source: n;1;C:\ProgramData\Package Cache\{030A6785-C3A9-37DA-8530-444C320629FA}v14.0.23107\packages\vs_minshellcore\
Features: Provider, vs_minshellcore, PID_Validation, PIDGenX_DLL, System.Threading.Tasks.Dataflowx86enu, Servicing_Key
Total features: 6
6: Local
Patch: {D174F2C0-A894-495F-B276-C28B52D4DBB4} KB3151378 (Applied)
Patch: {B9041113-67E7-46A3-BC24-A977D1FD13A1} KB3165756 (Applied)
Total patches: 2
{14D1CABE-2B5A-3AED-B3A7-42315D062965} Microsoft Visual Studio Enterprise 2015
Package code: {FE7684DC-63FA-401C-A1BA-A879B3C57FAE}
Install date: 2016.09.02
Version: 14.0.23107
Publisher: Microsoft Corporation
Assignment: Per-Machine
Language: 1033
Package: vs_enterprisecore.msi
Local package: C:\Windows\Installer\872219.msi
Installed from: C:\ProgramData\Package Cache\{14D1CABE-2B5A-3AED-B3A7-42315D062965}v14.0.23107\packages\enterprisecore\
Last source: n;1;C:\ProgramData\Package Cache\{14D1CABE-2B5A-3AED-B3A7-42315D062965}v14.0.23107\packages\enterprisecore\
Help link: https://go.microsoft.com/fwlink/?LinkId=133405
Features: Provider, Visual_Studio_Ultimate_x86_enu, Team_Developer_and_Test_tools_x86_enu, Testing_Tools_12153_x86_enu, VsttliteSpecific_Feature, VsttLite_Update1_Feature, VSU_TestTools_Update1_Feature, VSU_TestTools_Update2_Feature, AgileTestWindow_net, ProductRegKeyVSTS_12211_x86_enu, PID_Validation, PIDGenX_DLL, Servicing_Key, Detection_Keys
Total features: 14
14: Local
Patch: {B9041113-67E7-46A3-BC24-A977D1FD13A1} KB3165756 (Applied)
Total patches: 1
{DE064F60-6522-3310-9665-B5E3E78B3638} Microsoft Visual Studio Community 2015
Package code: {4CCB2524-FCB2-461B-9530-CF2737B95732}
Install date: 2016.09.02
Version: 14.0.23107
Publisher: Microsoft Corporation
Assignment: Per-Machine
Language: 1033
Package: vs_communitycore.msi
Local package: C:\Windows\Installer\8721d1.msi
Installed from: C:\ProgramData\Package Cache\{DE064F60-6522-3310-9665-B5E3E78B3638}v14.0.23107\packages\communitycore\Setup\
Last source: n;1;C:\ProgramData\Package Cache\{DE064F60-6522-3310-9665-B5E3E78B3638}v14.0.23107\packages\communitycore\Setup\
Features: Visual_Studio_Community_x86_enu, VB_for_VS_7_Pro_11320_x86_enu, Provider, VCsh_for_VS_7_Pro_810_x86_enu, VWD_for_VS_Pro_11324_x86_enu, Testing_Tools_for_Pro_x86_enu, Code_Analysis_Tools_11987_x86_enu, Performance_Tools_11988_x86_enu, TSDevPkg_12650_x86_enu, WinSDK_EULA, VS_Remote_Debugging_x86_enu, PID_Validation, PIDGenX_DLL, SilverlightSL4_Reg, Servicing_Key, Detection_Keys, UnitTest_Agent_12142
Total features: 17
17: Local
Patch: {B9041113-67E7-46A3-BC24-A977D1FD13A1} KB3165756 (Applied)
Total patches: 1
{DF32E41C-24AD-4A87-B43A-B38553B1806E} Visual Studio 2015 Prerequisites
Package code: {470C3138-DE41-4A82-AF51-621DA2F70582}
Install date: 2016.09.02
Version: 14.0.23107
Publisher: Microsoft Corporation
Assignment: Per-Machine
Language: 1033
Package: VS_Prerequisites_x64_neutral.msi
Local package: C:\Windows\Installer\872106.msi
Installed from: C:\ProgramData\Package Cache\{DF32E41C-24AD-4A87-B43A-B38553B1806E}v14.0.23107\packages\64bitPrereq\x64\
Last source: n;1;C:\ProgramData\Package Cache\{DF32E41C-24AD-4A87-B43A-B38553B1806E}v14.0.23107\packages\64bitPrereq\x64\
Help link: https://go.microsoft.com/fwlink/?LinkId=133405
Features: VS_BSLN_enu_amd64_sfx_SETUP, Provider, Visual_Studio_A64_Prereqs_amd64_enu, WinSDK_Registry_x64, Servicing_Key, Detection_Keys
Total features: 6
6: Local
Patch: {B9041113-67E7-46A3-BC24-A977D1FD13A1} KB3165756 (Applied)
Total patches: 1
{66D86CBC-EFCD-3502-A249-F91F775427F8} Microsoft Visual Studio Premium 2015
Package code: {B5F4BF5C-5086-4A0C-BF4E-C821E0401A7B}
Install date: 2016.09.02
Version: 14.0.23107
Publisher: Microsoft Corporation
Assignment: Per-Machine
Language: 1033
Package: vs_premiumcore.msi
Local package: C:\Windows\Installer\8721fa.msi
Installed from: C:\ProgramData\Package Cache\{66D86CBC-EFCD-3502-A249-F91F775427F8}v14.0.23107\packages\premiumcore\
Last source: n;1;C:\ProgramData\Package Cache\{66D86CBC-EFCD-3502-A249-F91F775427F8}v14.0.23107\packages\premiumcore\
Help link: https://go.microsoft.com/fwlink/?LinkId=133405
Features: Provider, Visual_Studio_Premium_x86_enu, VB_for_VS_7_Ent_28_x86_enu, VCsh_for_VS_7_Ent_670_x86_enu, Team_Developer_Tools_11986_x86_enu, Testing_Tools_for_Dev_11989_x86_enu, VSU_UITest_Components_Update1_Feature, TSDevPkg_12650_x86_enu, VsttliteSpecific_Feature, VsttLite_Update1_Feature, SilverlightSL4_Reg, Servicing_Key, Detection_Keys
Total features: 13
13: Local
Patch: {B9041113-67E7-46A3-BC24-A977D1FD13A1} KB3165756 (Applied)
Total patches: 1
What happened:
When VSU3 is uninstalled, it also uninstalls MU3.x (MicroUpdate 3). That is okay. However, the MU3.x uninstall didn’t remove the MU MSP (patch) that targets many VS MSIs.
From dd_patch_KB3165756_2060902195618.log:
[1914:1DB8][2016-09-02T19:56:20]i201: Planned package: kb3165756_enu, state: Present, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
[1914:1DB8][2016-09-02T19:56:20]i201: Planned package: kb3165756, state: Present, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Why did it happen:
Unfortunately, this is how bundles are designed to work for performance reasons. It is assumed that if a patch bundle (like VS Update) is being removed because it is a related bundle and the related parent bundle is also being removed, then the parent bundle will be uninstalling the product (MSI) so the patch bundle doesn’t need to remove the patch (MSP). If it didn’t do this, it would take twice as long to uninstall VS when VS Update is also present. So this performance design works great for the VS & VS Update scenario.
However, this design does not work with Micro Updates which are a patch to a patch. Since it is assumed that if a patch bundle (like MU3.x) is being removed because it is a related bundle and the related parent bundle (VSUpdate) is also being removed, then the parent bundle will remove the product. But, VS Update isn’t a product, it is a patch. So what happens here is that the VS U3 patch gets removed but the MU3.x patch does not get removed since the product (VS RTM) is still present.
Workaround:
Find all the Micro Updates on your machine. Even though the Micro Updates are already uninstalled when VS Update is uninstalled, there is still a copy of the MU setup exes in the SecondaryInstaller cache. Note: The paths will vary depending on the versions of MUs you previously had installed. You can find them by running this command: dir "\ProgramData\VS14-KB*.exe" /s
Next, run all of these exes with “/uninstall” to force it to uninstall the MUs again using the below commands. This time, they will not run in “related bundle” mode so they will actually remove the patch (MSP) and VS files that are patched will go back to their RTM version.
C:\ProgramData\Microsoft\VisualStudioSecondaryInstaller\14.0\installers\MicroUpdate2.1\en\0\vs14-kb3151378.exe /uninstall
C:\ProgramData\Microsoft\VisualStudioSecondaryInstaller\14.0\installers\MicroUpdate3.4\en\0\vs14-kb3165756.exe /uninstall
If you find more than one MU, uninstall all of them just to be sure they are all removed. On my machine, I previously had MU2.1 and MU3.4. That is why even after uninstalling VS U3 some MSIs still had 2 patches applied. Now the VSU3 and MU3.4 and MU2.1 patches are all removed and Visual Studio IDE can be launched successfully.