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

            
        }