public void StartBatchBuild(IDictionary <string, string> globalProperties = null) { if (_batchBuildStarted) { throw new InvalidOperationException(); } globalProperties = globalProperties ?? ImmutableDictionary <string, string> .Empty; var allProperties = s_defaultGlobalProperties.AddRange(globalProperties); _batchBuildProjectCollection = new MSB.Evaluation.ProjectCollection(allProperties); _batchBuildLogger = new MSBuildDiagnosticLogger() { Verbosity = MSB.Framework.LoggerVerbosity.Normal }; var buildParameters = new MSB.Execution.BuildParameters(_batchBuildProjectCollection) { Loggers = new MSB.Framework.ILogger[] { _batchBuildLogger } }; MSB.Execution.BuildManager.DefaultBuildManager.BeginBuild(buildParameters); _batchBuildStarted = true; }
public void Stop() { if (!_started) { throw new InvalidOperationException(); } MSB.Execution.BuildManager.DefaultBuildManager.EndBuild(); // unload project so collection will release global strings _projectCollection.UnloadAllProjects(); _projectCollection = null; _logger = null; _started = false; }
public void Start() { if (_started) { throw new InvalidOperationException(); } _projectCollection = new MSB.Evaluation.ProjectCollection(s_defaultGlobalProperties); _logger = new MSBuildDiagnosticLogger() { Verbosity = MSB.Framework.LoggerVerbosity.Normal }; var buildParameters = new MSB.Execution.BuildParameters(_projectCollection) { Loggers = new MSB.Framework.ILogger[] { _logger } }; MSB.Execution.BuildManager.DefaultBuildManager.BeginBuild(buildParameters); _started = true; }