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> /// 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 DeploymentEngine(DeploymentContext deploymentContext, IDeploymentStartegyProvider deploymentStartegyProvider, string packagesFolderPath, List <string> remotePackagesSources, bool updatePackages, bool allowDowngrades) { DeploymentContext = deploymentContext; DeploymentStartegyProvider = deploymentStartegyProvider; UpdatePackages = updatePackages; AllowDowngrades = allowDowngrades; if (string.IsNullOrWhiteSpace(packagesFolderPath)) { PackagesFolderPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); DontCachePackages = true; } else { PackagesFolderPath = packagesFolderPath; } NuGetEngine = new NuGetEngine(deploymentContext, PackagesFolderPath, remotePackagesSources, updatePackages, allowDowngrades); }