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());
        }
Esempio n. 4
0
        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;
 }
Esempio n. 8
0
 public RemoveRegistryKeys(ClickOnceRegistry registry, UninstallInfo uninstallInfo)
 {
     _registry      = registry;
     _uninstallInfo = uninstallInfo;
 }
 public RemoveUninstallEntry(UninstallInfo uninstallInfo)
 {
     _uninstallInfo = uninstallInfo;
 }
 public RemoveStartMenuEntry(UninstallInfo uninstallInfo)
 {
     _uninstallInfo = uninstallInfo;
 }