protected virtual void OnInstallPackages(FileTransaction fileTransaction, IEnumerable <PackageInfo> packages, IProductConfigurationProvider productConfigProvider, IPackageConfigurationProvider packageConfigProvider, IDeploymentStartegyProvider deploymentStartegy) { foreach (var package in packages) { var files = deploymentStartegy.GetPackageFiles(package.Id, package.PackagePath).ToList(); var installedFiles = new List <string>(); var e = new BeforePackageInstalledEvent(); e.FilesToInstall.AddRange(files); RaiseDeploymentEvent(e, package.Id); foreach (var file in e.FilesToInstall) { if (file.Action == FileAction.Copy) { fileTransaction.InstallFile(file); installedFiles.Add(file.TargetFileName); } else if (file.Action == FileAction.Delete) { fileTransaction.DeleteFile(file.TargetFileName); } } var cfg = packageConfigProvider.GetPackageConfiguration(package.Id, package.PackagePath); productConfigProvider.SetPackageConfiguration(cfg, installedFiles, package.Dependencies.Select(x => x.Id.ToString())); RaiseDeploymentEvent(new AfterPackageInstalledEvent(), package.Id); Logger.Info($"Package {package.Id} installed"); } }
/// <summary> /// Initializes a new instance of the <see cref="InstallPackageAction"/> class. /// </summary> /// <param name="deploymentContext">The deployment context.</param> /// <param name="isUpdate"><see cref="DeploymentAction.IsUpdate"/></param> /// <param name="deploymentPackage">The deployment package.</param> /// <param name="deploymentStrategy">The deployment strategy.</param> /// <seealso cref="DeploymentPackageInfo"/> public InstallPackageAction(DeploymentContext deploymentContext, bool isUpdate, DeploymentPackageInfo deploymentPackage, IDeploymentStrategyProvider deploymentStrategy) : base(deploymentContext, isUpdate) { _deploymentPackage = deploymentPackage; _packageConfigProvider = DeploymentContext.PackageConfigurationProvider; _deploymentStrategy = deploymentStrategy; }
/// <summary> /// Installs provided packages /// </summary> /// <param name="fileTransaction">File transaction to use</param> /// <param name="packages">Packages to install</param> /// <param name="productConfigProvider">Product configuration</param> /// <param name="packageConfigProvider">Packages configuration</param> /// <param name="deploymentStartegy">Deployment strategy to use</param> public void InstallPackages(FileTransaction fileTransaction, IEnumerable <PackageInfo> packages, IProductConfigurationProvider productConfigProvider, IPackageConfigurationProvider packageConfigProvider, IDeploymentStartegyProvider deploymentStartegy) { OnInstallPackages(fileTransaction, packages, productConfigProvider, packageConfigProvider, deploymentStartegy); }
public DefaultDeploymentContext(string productPath, string framework, IPackageConfigurationProvider packageConfigurationProvider, IProductConfigurationProvider productConfigurationProvider) { ProductPath = productPath; TargetFramework = framework; PackageConfigurationProvider = packageConfigurationProvider; ProductConfigurationProvider = productConfigurationProvider; }