Пример #1
0
        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);
        }