public override void Uninstall(IDictionary savedState) { try { InstallModeEnum installMode = (InstallModeEnum)savedState["InstallMode"]; string pathToAddinFile; switch (installMode) { case InstallModeEnum.kRegistryFree: pathToAddinFile = (string)savedState["PathToAddinFile"]; InstallUtils.UninstallRegistryFree(savedState, pathToAddinFile); break; case InstallModeEnum.kRegistry: InstallUtils.UninstallRegistry(savedState, GetType().Assembly); break; case InstallModeEnum.kBoth: InstallUtils.UninstallRegistry(savedState, GetType().Assembly); pathToAddinFile = (string)savedState["PathToAddinFile"]; InstallUtils.UninstallRegistryFree(savedState, pathToAddinFile); break; default: break; } } catch { } base.Uninstall(savedState); }
public override void Install(IDictionary stateSaver) { try { base.Install(stateSaver); InstallModeEnum installMode = InstallModeEnum.kRegistryFree; Assembly Asm = Assembly.GetExecutingAssembly(); FileInfo asmFile = new FileInfo(Asm.Location); stateSaver.Add("InstallMode", (int)installMode); switch (installMode) { case InstallModeEnum.kRegistryFree: stateSaver.Add("PathToAddinFile", InstallUtils.InstallRegistryFree( stateSaver, Asm, RegFreeModeEnum.kVersionIndep, string.Empty)); // Example for version dependent //stateSaver.Add("PathToAddinFile", // InstallUtils.InstallRegistryFree( // stateSaver, // Asm, // InstallUtils.RegFreeMode.kVersionDep, // "Inventor 2013")); break; case InstallModeEnum.kRegistry: InstallUtils.InstallRegistry(stateSaver, GetType().Assembly); break; case InstallModeEnum.kBoth: InstallUtils.InstallRegistry(stateSaver, GetType().Assembly); //Only value that works for kBoth install mode is kUserOverride stateSaver.Add("PathToAddinFile", InstallUtils.InstallRegistryFree( stateSaver, Asm, RegFreeModeEnum.kUserOverride, "Inventor 2013")); break; default: break; } } catch (InstallException ex) { throw new InstallException(ex.Message); } catch { throw new InstallException("Error installing addin!"); } }