Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }