Example #1
0
        async Task ExecuteAsync(CancellationToken cancellationToken)
        {
            try {
                restoreAction.Execute(cancellationToken);
            } catch (Exception ex) {
                bool result = await OnRestoreFailure(cancellationToken);

                if (!result)
                {
                    throw ex;
                }
                return;
            }

            uninstallAction.PackageId = PackageId;
            uninstallAction.Execute(cancellationToken);
        }
        public void Execute(CancellationToken cancellationToken)
        {
            using (IDisposable referenceMaintainer = CreateLocalCopyReferenceMaintainer()) {
                using (IDisposable fileMonitor = CreateFileMonitor()) {
                    uninstallAction.PackageId   = PackageId;
                    uninstallAction.ForceRemove = true;
                    uninstallAction.Execute(cancellationToken);

                    installAction.PackageId = PackageId;
                    installAction.Version   = Version;
                    installAction.LicensesMustBeAccepted = false;
                    installAction.OpenReadmeFile         = false;

                    // Local copy references need to be preserved before the uninstall starts so
                    // we must disable this for the install action otherwise they will not be
                    // preserved.
                    installAction.PreserveLocalCopyReferences = false;

                    installAction.Execute(cancellationToken);
                }
            }
        }