private static void UninstallMarkedItems(ConfigFileManager config) { string[] names = null; string namesRaw = config.GetValue("MarkedForUninstall"); if (!string.IsNullOrEmpty(namesRaw)) { names = namesRaw.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (string name in names) { try { UninstallAddonLibrary(name); } catch(Exception ex) { //ErrorDispatcher.DispatchError(ex); Logger.LogException(ex); } } config.DeleteValue("MarkedForUninstall"); config.Save(); } }
private void ScheduleForUninstall(string assembly) { string addons = string.Empty; List<AddonInfo> itemsToDisable = new List<AddonInfo>(); foreach (AddonInfo ai in addonList.AllAddons) { string[] codebaseParts = ai.CodeBase.Split(new char[]{'|'}); if (codebaseParts.Length > 0 && codebaseParts[0].ToLowerInvariant() == assembly.ToLowerInvariant()) { addons += ai.TranslatedName; addons += "\n"; itemsToDisable.Add(ai); } } if (itemsToDisable.Count < 1) return; if (itemsToDisable.Count == 1 || (MessageDisplay.Query(Translator.Translate("TXT_SHAREDADDONS", addons), Translator.Translate("TXT_CAUTION"), MessageBoxIcon.Question) == DialogResult.Yes)) { // Clear for uninstalling. ConfigFileManager cfgFile = new ConfigFileManager(AddonsConfig.AddonsConfigFile); foreach (AddonInfo ai in itemsToDisable) { cfgFile.DeleteValue(ai.Name); addonList.RemoveAddon(ai); } cfgFile.Save(); AddonsConfig.MarkForUninstall(assembly); _uninstallScheduled = true; } }