/// <summary> /// Runs the basic uninstall script. /// </summary> /// <remarks> /// A basic uninstall uninstalls all of the changes made when the mod was installed. /// </remarks> /// <param name="p_tfmFileManager">The transactional file manager to use to interact with the file system.</param> /// <returns><c>true</c> if the uninstallation was successful; /// <c>false</c> otherwise.</returns> protected bool RunBasicUninstallScript(TxFileManager p_tfmFileManager, out string p_strErrorMessage) { p_strErrorMessage = null; IDataFileUtil dfuDataFileUtility = new DataFileUtil(GameMode.GameModeEnvironmentInfo.InstallationPath); IModFileInstaller mfiFileInstaller = new ModFileInstaller(GameMode.GameModeEnvironmentInfo, Mod, ModInstallLog, PluginManager, dfuDataFileUtility, p_tfmFileManager, null, GameMode.UsesPlugins, m_mmModManager); IIniInstaller iniIniInstaller = new IniInstaller(Mod, ModInstallLog, p_tfmFileManager, null); IGameSpecificValueInstaller gviGameSpecificValueInstaller = GameMode.GetGameSpecificValueInstaller(Mod, ModInstallLog, p_tfmFileManager, new NexusFileUtil(EnvironmentInfo), null); InstallerGroup ipgInstallers = new InstallerGroup(dfuDataFileUtility, mfiFileInstaller, iniIniInstaller, gviGameSpecificValueInstaller, PluginManager); BasicUninstallTask butTask = new BasicUninstallTask(Mod, ipgInstallers, ModInstallLog, GameMode, ActiveMods); OnTaskStarted(butTask); bool booResult = butTask.Execute(); if (mfiFileInstaller.InstallErrors.Count > 0) { p_strErrorMessage = Environment.NewLine + "The manager was unable to remove these files:" + Environment.NewLine; foreach (string strPath in mfiFileInstaller.InstallErrors) { p_strErrorMessage += strPath + Environment.NewLine; } } mfiFileInstaller.FinalizeInstall(); iniIniInstaller.FinalizeInstall(); if (gviGameSpecificValueInstaller != null) { gviGameSpecificValueInstaller.FinalizeInstall(); } return(booResult); }
/// <summary> /// Runs the basic uninstall script. /// </summary> /// <remarks> /// A basic uninstall uninstalls all of the changes made when the mod was installed. /// </remarks> /// <param name="p_tfmFileManager">The transactional file manager to use to interact with the file system.</param> /// <returns><c>true</c> if the uninstallation was successful; /// <c>false</c> otherwise.</returns> protected bool RunBasicUninstallScript(TxFileManager p_tfmFileManager, out string p_strErrorMessage) { p_strErrorMessage = null; IDataFileUtil dfuDataFileUtility = new DataFileUtil(GameMode.GameModeEnvironmentInfo.InstallationPath); IModFileInstaller mfiFileInstaller = new ModFileInstaller(GameMode.GameModeEnvironmentInfo, Mod, ModInstallLog, PluginManager, dfuDataFileUtility, p_tfmFileManager, null, GameMode.UsesPlugins, EnvironmentInfo); IIniInstaller iniIniInstaller = new IniInstaller(Mod, ModInstallLog, VirtualModActivator, p_tfmFileManager, null); IGameSpecificValueInstaller gviGameSpecificValueInstaller = GameMode.GetGameSpecificValueInstaller(Mod, ModInstallLog, p_tfmFileManager, new NexusFileUtil(EnvironmentInfo), null); InstallerGroup ipgInstallers = new InstallerGroup(dfuDataFileUtility, mfiFileInstaller, iniIniInstaller, gviGameSpecificValueInstaller, PluginManager); BasicUninstallTask butTask = new BasicUninstallTask(Mod, VirtualModActivator, ipgInstallers, ModInstallLog, GameMode, ActiveMods); OnTaskStarted(butTask); bool booResult = butTask.Execute(); if (mfiFileInstaller.InstallErrors.Count > 0) { p_strErrorMessage = Environment.NewLine + "There were issues while installing/uninstalling this mod:" + Environment.NewLine; foreach (string strPath in mfiFileInstaller.InstallErrors) { DetailsErrorMessage += strPath + Environment.NewLine; } PopupErrorMessage = p_strErrorMessage; PopupErrorMessageType = butTask.strPopupErrorMessageType; } mfiFileInstaller.FinalizeInstall(); iniIniInstaller.FinalizeInstall(); if (gviGameSpecificValueInstaller != null) { gviGameSpecificValueInstaller.FinalizeInstall(); } return(booResult); }
/// <summary> /// Runs the basic uninstall script. /// </summary> /// <remarks> /// A basic uninstall uninstalls all of the changes made when the mod was installed. /// </remarks> /// <param name="p_tfmFileManager">The transactional file manager to use to interact with the file system.</param> /// <returns><c>true</c> if the uninstallation was successful; /// <c>false</c> otherwise.</returns> protected bool RunBasicUninstallScript(TxFileManager p_tfmFileManager, out string p_strErrorMessage) { p_strErrorMessage = null; IDataFileUtil dfuDataFileUtility = new DataFileUtil(GameMode.GameModeEnvironmentInfo.InstallationPath); IModFileInstaller mfiFileInstaller = new ModFileInstaller(GameMode.GameModeEnvironmentInfo, Mod, ModInstallLog, PluginManager, dfuDataFileUtility, p_tfmFileManager, null, GameMode.UsesPlugins, m_mmModManager); IIniInstaller iniIniInstaller = new IniInstaller(Mod, ModInstallLog, p_tfmFileManager, null); IGameSpecificValueInstaller gviGameSpecificValueInstaller = GameMode.GetGameSpecificValueInstaller(Mod, ModInstallLog, p_tfmFileManager, new NexusFileUtil(EnvironmentInfo), null); InstallerGroup ipgInstallers = new InstallerGroup(dfuDataFileUtility, mfiFileInstaller, iniIniInstaller, gviGameSpecificValueInstaller, PluginManager); BasicUninstallTask butTask = new BasicUninstallTask(Mod, ipgInstallers, ModInstallLog, GameMode, ActiveMods); OnTaskStarted(butTask); bool booResult = butTask.Execute(); if (mfiFileInstaller.InstallErrors.Count > 0) { p_strErrorMessage = Environment.NewLine + "There were issues while installing/uninstalling this mod:" + Environment.NewLine; foreach (string strPath in mfiFileInstaller.InstallErrors) DetailsErrorMessage += strPath + Environment.NewLine; PopupErrorMessage = p_strErrorMessage; PopupErrorMessageType = butTask.strPopupErrorMessageType; } mfiFileInstaller.FinalizeInstall(); iniIniInstaller.FinalizeInstall(); if (gviGameSpecificValueInstaller != null) gviGameSpecificValueInstaller.FinalizeInstall(); return booResult; }