Exemple #1
0
        private void StartDeployment(SourceCode.Workflow.Authoring.Process process)
        {
            DeploymentResults results = WorkflowDeploymentSamples.DeployProcess(process);

            StringBuilder sbOutput = new StringBuilder();

            if (results.Successful)
            {
                sbOutput.AppendLine("Deployment succeeded");
                sbOutput.AppendLine("====================");
                sbOutput.AppendLine();
                foreach (string output in results.Output)
                {
                    sbOutput.AppendLine(output);
                }
            }
            else
            {
                sbOutput.AppendLine("Deployment failed");
                sbOutput.AppendLine("=================");
                sbOutput.AppendLine();
                for (int i = 0; i < results.Errors.Count; i++)
                {
                    sbOutput.AppendLine(results.Errors[i].ToString());
                }
            }

            txtDeploymentResults.Text = sbOutput.ToString();
        }
        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;
                }
            }
        }