In the end, I was able to solve the problem of disabling any unnecessary Visual Studio package in a clean and minimally invasive way that does not require changing the VS configuration files or messing with the registry! This includes the Run Runner tool, the VsHub tool that causes a lot of VS instability and slowdown, as well as any other 150+ VS package it comes with.
Here is a brief overview: The main component of functionality for VS is a package (do not mix it with NuGet packages - this is not relevant here). All extensions that you can install from the Internet (as well as many pre-installed) are presented as VSIX, which is an extended package format. Visual Studio has an API (unpublished, but still) that can work with VSIX packages, including finding them and turning them on / off. Unfortunately, it can only process VSIX and does not see pure VS packets. This is declared by design - pure VS packages are considered system components and do not support a way to disable them. Or so they say ... I decompiled the official (albeit badly outdated) MS plug-in for diagnosing extensions and found that it works a lot with the registry to get information about installed VSPackages, but it doesnβt even try to change anything (I think, turn it off ) My own research at HKCU \ Software \ Microsoft \ VisualStudio found that a huge and complex data structure is useless for violin, since it is just a VS internal state cache, which VS is updated randomly and often, so even if we find out how to disable a package through the registry would be pointless since VS would rewrite it right away.
The two keys that finally led me to the final solution were as follows: 1. File C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.pkgdef The contents of this file are not particularly interesting, but my past is C + + gave me a hint that if there is PkgDef, there is a good chance that PkgUnDef may also be, although usually it is not. ProcMon confirmed that during startup VS checks for the existence of the devenv.pkgundef file, and I was on the right track. 2. The second hint. I know that some other products (I think SQL Server Management Studio) use the VS Shell masking (so you still see VS 2010 in Add / Remove programs - this is an SQL message). And these other products, obviously, have the ability to disable most of the VS features and leave only some of the features they really need. So I found out how they do it, and here you are again - the pkgundef file!
Several probes and registries have been considered to write the right content for devenv.PkgUnDef to get rid of packages that I don't like, with no visible side effects or bad consequences.
My C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.pkgundef files look like this:
// Exclude TaskRunnerExplorer [$RootKey$\Packages\{b483c4e7-43a6-4f7b-a9a1-79e2c5d12148}] // Exclude VsHubServicePackage [$RootKey$\Packages\{F419E6BB-F72F-42CF-ACFE-D0D0E17FCB17}] // Exclude JavaScriptWebExtensionsPackage [$RootKey$\Packages\{30db8f9b-ec9f-44d6-b377-83c7c27a1a8b}]
To check which specific packages you downloaded, Extension Analyzer . It is quite outdated, so I hacked a version that works with VS 2015 here .
Another way to see what VS is slowing down is to run it with the / Log option and apply the Activity Log Provider .
Hope this helps people recover their thin and fast Visual Studio! Konstantin