private async Task RemoveClickOnceShortcuts() { this.Log().Info("Removing ClickOnce shortcuts"); UninstallInfo info = await Task.Run(() => UninstallInfo.Find(this.clickOnceAppName)); if (info == null) { this.Log().Info("Couldn't find the ClickOnce deployment, bailing..."); return; } var remover = new RemoveStartMenuEntry(info); try { await Task.Run(() => { remover.Prepare(); remover.Execute(); }); } catch (Exception ex) { this.Log().ErrorException("Failed to remove ClickOnce shortcuts", ex); return; } this.Log().Info("Removed ClickOnce shortcuts"); }
/// <summary> /// Uninstalls the ClickOnce version of your application. /// /// Call this method from the Squirrel version of your application. /// </summary> /// <remarks> /// After this method completes, you may want to set a flag somewhere, so you don't call /// this method the next time your Squirrel app starts. /// </remarks> public async Task Execute() { UninstallInfo uninstallInfo = await Task.Run(() => UninstallInfo.Find(this.clickOnceAppName)); if (uninstallInfo == null) { this.Log().Info("Couldn't find the ClickOnce deployment, bailing..."); return; } var uninstaller = new Uninstaller(); await Task.Run(() => uninstaller.Uninstall(uninstallInfo)); }
public void Uninstall(UninstallInfo uninstallInfo) { var toRemove = FindComponentsToRemove(uninstallInfo.GetPublicKeyToken()); this.Log().Info("Components to remove:"); toRemove.ForEach(this.Log().Info); var steps = new List<IUninstallStep> { new RemoveFiles(), new RemoveStartMenuEntry(uninstallInfo), new RemoveRegistryKeys(_registry, uninstallInfo), new RemoveUninstallEntry(uninstallInfo) }; steps.ForEach(s => s.Prepare(toRemove)); steps.ForEach(s => s.PrintDebugInformation()); steps.ForEach(s => s.Execute()); steps.ForEach(s => s.Dispose()); }
public void Uninstall(UninstallInfo uninstallInfo) { var toRemove = FindComponentsToRemove(uninstallInfo.GetPublicKeyToken()); this.Log().Info("Components to remove:"); toRemove.ForEach(this.Log().Info); var steps = new List <IUninstallStep> { new RemoveFiles(), new RemoveStartMenuEntry(uninstallInfo), new RemoveRegistryKeys(_registry, uninstallInfo), new RemoveUninstallEntry(uninstallInfo) }; steps.ForEach(s => s.Prepare(toRemove)); steps.ForEach(s => s.PrintDebugInformation()); steps.ForEach(s => s.Execute()); steps.ForEach(s => s.Dispose()); }
public RemoveStartMenuEntry(UninstallInfo uninstallInfo) { _uninstallInfo = uninstallInfo; }
public RemoveUninstallEntry(UninstallInfo uninstallInfo) { _uninstallInfo = uninstallInfo; }
public RemoveRegistryKeys(ClickOnceRegistry registry, UninstallInfo uninstallInfo) { _registry = registry; _uninstallInfo = uninstallInfo; }