private void BuildEvents_OnBuildProjectDone(object sender, BuildProjectEventArgs e) { if (e.ProjectState == ProjectState.BuildError && _viewModel.ControlSettings.GeneralSettings.StopBuildAfterFirstError) _buildDistributor.CancelBuild(); try { ProjectItem currentProject = e.ProjectItem; currentProject.State = e.ProjectState; currentProject.BuildFinishTime = DateTime.Now; currentProject.UpdatePostBuildProperties(e.BuildedProjectInfo); if (!_viewModel.ProjectsList.Contains(currentProject)) _viewModel.ProjectsList.Add(currentProject); var buildInfo = (BuildInfo)sender; if (ReferenceEquals(_viewModel.CurrentProject, e.ProjectItem) && buildInfo.BuildingProjects.Any()) _viewModel.CurrentProject = buildInfo.BuildingProjects.Last(); } catch (Exception ex) { ex.TraceUnknownException(); } _viewModel.UpdateIndicators(_dte, _buildContext); try { _viewModel.OnBuildProjectDone(e.BuildedProjectInfo); } catch (Exception ex) { ex.TraceUnknownException(); } }
private void BuildEvents_OnBuildProjectBegin(object sender, BuildProjectEventArgs e) { try { ProjectItem currentProject = e.ProjectItem; currentProject.State = e.ProjectState; currentProject.BuildFinishTime = null; currentProject.BuildStartTime = e.EventTime; _viewModel.OnBuildProjectBegin(); if (_buildContext.BuildScope == vsBuildScope.vsBuildScopeSolution && (_buildContext.BuildAction == vsBuildAction.vsBuildActionBuild || _buildContext.BuildAction == vsBuildAction.vsBuildActionRebuildAll)) { currentProject.BuildOrder = _viewModel.BuildProgressViewModel.CurrentQueuePosOfBuildingProject; } if (!_viewModel.ProjectsList.Contains(currentProject)) _viewModel.ProjectsList.Add(currentProject); _viewModel.CurrentProject = currentProject; } catch (Exception ex) { ex.TraceUnknownException(); } }