Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
 /// <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);
 }
Exemplo n.º 3
0
        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);
        }