Beispiel #1
0
        /// <summary>
        /// Indicates that a build session is starting
        /// </summary>
        public async Task BeginBuildOperation(ProgressMonitor monitor, MSBuildLogger logger, MSBuildVerbosity verbosity, ProjectConfigurationInfo[] configurations)
        {
            buildSessionLoggerId = RegisterLogger(monitor.Log, logger);
            try {
                var binLogPath = Path.ChangeExtension(Path.GetTempFileName(), "binlog");
                await connection.SendMessage(new BeginBuildRequest {
                    BinLogFilePath   = binLogPath,
                    LogWriterId      = buildSessionLoggerId,
                    EnabledLogEvents = logger != null ? logger.EnabledEvents : MSBuildEvent.None,
                    Verbosity        = verbosity,
                    Configurations   = configurations
                });

                monitor.LogObject(new BuildSessionStartedEvent {
                    SessionId = buildSessionLoggerId,
                    LogFile   = binLogPath,
                    TimeStamp = DateTime.Now
                });
            } catch {
                UnregisterLogger(buildSessionLoggerId);
                await CheckDisconnected();

                throw;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Indicates that a build session has finished.
        /// </summary>
        /// <returns>The build operation.</returns>
        public async Task EndBuildOperation(ProgressMonitor monitor)
        {
            try {
                await connection.SendMessage(new EndBuildRequest());

                await connection.ProcessPendingMessages();

                monitor.LogObject(new BuildSessionFinishedEvent {
                    SessionId = buildSessionLoggerId,
                    TimeStamp = DateTime.Now
                });
            } catch {
                await CheckDisconnected();

                throw;
            } finally {
                UnregisterLogger(buildSessionLoggerId);
            }
        }