public BinaryMessage RunProject(RunProjectRequest msg)
        {
            var pb = GetProject(msg.ProjectId);

            if (pb != null)
            {
                var logger = msg.LogWriterId != -1 ? (ILogWriter) new LogWriter(msg.LogWriterId) : (ILogWriter) new NullLogWriter();
                var res    = pb.Run(msg.Configurations, logger, msg.Verbosity, msg.RunTargets, msg.EvaluateItems, msg.EvaluateProperties, msg.GlobalProperties, msg.TaskId);
                return(new RunProjectResponse {
                    Result = res
                });
            }
            return(msg.CreateResponse());
        }
Example #2
0
        async Task <MSBuildResult> SendRun(ProjectConfigurationInfo [] configurations, int loggerId, MSBuildEvent enabledLogEvents, MSBuildVerbosity verbosity, string [] runTargets, string [] evaluateItems, string [] evaluateProperties, Dictionary <string, string> globalProperties, int taskId)
        {
            var msg = new RunProjectRequest {
                ProjectId          = projectId,
                Configurations     = configurations,
                LogWriterId        = loggerId,
                EnabledLogEvents   = enabledLogEvents,
                Verbosity          = verbosity,
                RunTargets         = runTargets,
                EvaluateItems      = evaluateItems,
                EvaluateProperties = evaluateProperties,
                GlobalProperties   = globalProperties,
                TaskId             = taskId
            };

            var res = await connection.SendMessage(msg);

            // Make sure we get all log messages
            await connection.ProcessPendingMessages();

            return(res.Result);
        }