示例#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");
            }
        }
示例#2
0
 /// <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;
 }
示例#3
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);
 }
        public DefaultDeploymentContext(string productPath, string framework,
                                        IPackageConfigurationProvider packageConfigurationProvider,
                                        IProductConfigurationProvider productConfigurationProvider)
        {
            ProductPath     = productPath;
            TargetFramework = framework;

            PackageConfigurationProvider = packageConfigurationProvider;
            ProductConfigurationProvider = productConfigurationProvider;
        }