/// <summary> /// Executes the action under the specified transaction. /// </summary> /// <param name="transaction">The transaction.</param> /// <seealso cref="IDeploymentTransaction" /> public override void Execute(IDeploymentTransaction transaction) { var files = DeploymentContext.ProductConfigurationProvider.GetInstalledFiles(_packageId, true); var deleteEvent = new BeforePackageUninstalledEvent(); deleteEvent.FilesToDelete.AddRange(files); RaiseDeploymentEvent(deleteEvent, _packageId); foreach (var file in deleteEvent.FilesToDelete) { transaction.DeleteFile(file); } DeploymentContext.ProductConfigurationProvider.RemovePackage(_packageId); transaction.TrackDeletedPackage(_packageId); RaiseDeploymentEvent(new AfterPackageUninstalledEvent(), _packageId); Info($"{_packageId} uninstalled"); }
protected virtual void OnDeletePackages(FileTransaction fileTransaction, IEnumerable <PackageId> packages, IProductConfigurationProvider productConfig) { foreach (var packageId in packages) { var files = productConfig.GetInstalledFiles(packageId, true); var deleteEvent = new BeforePackageUninstalledEvent(); deleteEvent.FilesToDelete.AddRange(files); RaiseDeploymentEvent(deleteEvent, packageId); foreach (var file in deleteEvent.FilesToDelete) { fileTransaction.DeleteFile(file); } productConfig.RemovePackageConfiguration(packageId); RaiseDeploymentEvent(new AfterPackageUninstalledEvent(), packageId); Logger.Info($"Package {packageId} uninstalled"); } }