public bool Uninstall(string id, bool skipGlobal) { if (!extensionManager.TryGetInstalledExtension(id, out var _)) { return(false); } while (extensionManager.TryGetInstalledExtension(id, out var installedExtension)) { if (skipGlobal && installedExtension.InstalledPerMachine) { return(false); } Console.WriteLine($"Uninstalling {NameVer(installedExtension)}"); extensionManager.Uninstall(installedExtension); DirectoryUtil.DeleteHard(installedExtension.InstallPath, true); ExtensionManagerUtil.RemovePendingExtensionDeletion(externalSettingsManager, installedExtension.Header); // Reset extension manager cache ExtensionManagerService.Dispose(); extensionManager = ExtensionManagerService.Create(externalSettingsManager); } return(true); }