public DeploymentResults Deploy(Project project)
        {
            DeploymentPackage     package     = null;
            DeploymentEnvironment environment = null;

            try
            {
                // Compile the project first before we attempt to deploy it.
                DeploymentResults compileResults = project.Compile();
                if (!compileResults.Successful)
                {
                    // Is the compile was unsuccesfull, return the results
                    return(compileResults);
                }

                // Create a logger that is required by the deployment package
                ProjectLogger logger = new ProjectLogger();
                logger.Verbosity = Microsoft.Build.Framework.LoggerVerbosity.Diagnostic;
                project.SetOutputLogger(logger);

                // Create a new deployment package
                package = project.CreateDeploymentPackage();

                // The deployment package requires at least one environment, so add a default one.
                // When deployment is done via VisualStudio, the environments are automatically set
                // up from the ones available in the Environment Library.
                environment = package.AddEnvironment("Default");
                package.SelectedEnvironment                = environment.Name;
                package.SmartObjectConnectionString        = _smartObjectConnectionString;
                package.WorkflowManagementConnectionString = _workflowManagementConnectionString;

                // Start the deployment
                return(project.Deploy(package));
            }
            finally
            {
                if (package != null)
                {
                    package.Dispose();
                    package = null;
                }
                if (environment != null)
                {
                    environment.Dispose();
                    environment = null;
                }
            }
        }
Exemple #2
0
        public static FileInfo SaveXml(DeploymentPackage deploymentPackage)
        {
            if (deploymentPackage == null)
            {
                throw new ArgumentException(nameof(deploymentPackage));
            }

            var xmlSerializer = new XmlSerializer(typeof(DeploymentPackage));

            using (var sw = new StreamWriter(Manifestfilename))
            {
                xmlSerializer.Serialize(sw, deploymentPackage);
            }

            return(new FileInfo(Manifestfilename));
        }
        public static DeploymentPackage GetPackage(string environmentServer,
                                                   string destinationTemplate, string destinationEnvironment,
                                                   Project project, bool testOnly)
        {
            //Create connection string to environment server
            var envionmentServerConnection = EnvionmentServerConnection(environmentServer);
            //Retrieve the environments from the server
            EnvironmentSettingsManager environmentManager = new
                                                            EnvironmentSettingsManager(true);

            environmentManager.ConnectToServer(envionmentServerConnection);
            environmentManager.InitializeSettingsManager(true);
            environmentManager.Refresh();

            //Get the template and environment objects.
            EnvironmentTemplate template    = environmentManager.EnvironmentTemplates[destinationTemplate];
            EnvironmentInstance environment = template.Environments[destinationEnvironment];
            //Create the package
            DeploymentPackage package = project.CreateDeploymentPackage();

            //Set all of the environment fields to the package
            DeploymentEnvironment deploymentEnv =
                package.AddEnvironment(environment.EnvironmentName);

            foreach (EnvironmentField field in environment.EnvironmentFields)
            {
                deploymentEnv.Properties[field.FieldName] = field.Value;
            }

            //Set fields on the package
            package.SelectedEnvironment        = destinationEnvironment;
            package.DeploymentLabelName        = DateTime.Now.ToString(CultureInfo.InvariantCulture);
            package.DeploymentLabelDescription =
                "Template: " + destinationTemplate + ",Environment: " + destinationEnvironment;
            package.TestOnly = testOnly;
            //Get the Default SmartObject Server in the Environment
            //environment.GetDefaultField(typeof(SmartObjectField));
            package.SmartObjectConnectionString = envionmentServerConnection;
            //Get the Default Workflow Management Server in the Environment
            //environment.GetDefaultField(typeof(WorkflowManagementServerField));
            package.WorkflowManagementConnectionString = envionmentServerConnection;

            return(package);
        }
Exemple #4
0
        private static void CreateZipFile(IComponent component, string path)
        {
            Console.WriteLine($"Rozpoczecie tworzenia paczki {component.Name}");

            Console.Write("Stworzenie Deployment Component...");

            var dc = component.GetDeploymentComponent();

            var dp = new DeploymentPackage
            {
                DeploymentComponent = new[]
                {
                    dc
                }
            };

            Console.WriteLine("OK");

            Console.Write("Stworzenie manifestu...");

            var manifestFile = Helper.SaveXml(dp);

            Console.WriteLine("OK");

            var allFileZip = new List <FileInfo>();

            allFileZip.AddRange(component.Files);
            allFileZip.Add(manifestFile);

            var pathToWorkingFolder = Path.Combine(path, $"{component.Name}.zip");

            Console.Write($"Stworzenie archiwum w {pathToWorkingFolder}...");

            Helper.CreateZipFile(allFileZip, pathToWorkingFolder);

            Console.WriteLine("OK");

            Console.WriteLine("Zakończenie generowania paczki");
        }