Exemplo n.º 1
0
 public BuildProjectEventArgs(
     ProjectItem projectItem,
     ProjectState projectState,
     DateTime eventTime,
     BuildedProject buildedProjectInfo)
 {
     ProjectItem        = projectItem;
     ProjectState       = projectState;
     EventTime          = eventTime;
     BuildedProjectInfo = buildedProjectInfo;
 }
 public BuildProjectEventArgs(
     ProjectItem projectItem, 
     ProjectState projectState, 
     DateTime eventTime, 
     BuildedProject buildedProjectInfo)
 {
     ProjectItem = projectItem;
     ProjectState = projectState;
     EventTime = eventTime;
     BuildedProjectInfo = buildedProjectInfo;
 }
Exemplo n.º 3
0
        private void EventSource_ErrorRaised(
            BuildOutputLogger loggerSender,
            LazyFormattedBuildEventArgs e,
            ErrorLevel errorLevel)
        {
            try
            {
                bool verified = VerifyLoggerBuildEvent(loggerSender, e, errorLevel);
                if (!verified)
                {
                    return;
                }

                int projectInstanceId = e.BuildEventContext.ProjectInstanceId;
                int projectContextId  = e.BuildEventContext.ProjectContextId;

                BuildProjectContextEntry projectEntry = loggerSender.Projects.Find(t =>
                                                                                   t.InstanceId == projectInstanceId &&
                                                                                   t.ContextId == projectContextId);

                if (projectEntry == null)
                {
                    TraceManager.Trace(
                        string.Format(
                            "Project entry not found by ProjectInstanceId='{0}' and ProjectContextId='{1}'.",
                            projectInstanceId,
                            projectContextId),
                        EventLogEntryType.Warning);

                    return;
                }

                if (projectEntry.IsInvalid)
                {
                    return;
                }

                ProjectItem projectItem;
                if (!GetProjectItem(projectEntry, out projectItem))
                {
                    projectEntry.IsInvalid = true;
                    return;
                }

                BuildedProject buildedProject = _buildedProjects[projectItem];
                buildedProject.ErrorsBox.Keep(errorLevel, e);
                OnErrorRaised(this, new BuildErrorRaisedEventArgs(errorLevel, buildedProject));
            }
            catch (Exception ex)
            {
                ex.TraceUnknownException();
            }
        }
Exemplo n.º 4
0
 public BuildErrorRaisedEventArgs(ErrorLevel errorLevel, BuildedProject projectInfo)
 {
     ErrorLevel  = errorLevel;
     ProjectInfo = projectInfo;
 }
Exemplo n.º 5
0
 public void OnBuildProjectDone(BuildedProject buildedProjectInfo)
 {
     bool success = buildedProjectInfo.Success.GetValueOrDefault(true);
     BuildProgressViewModel.OnBuildProjectDone(success);
 }
Exemplo n.º 6
0
 public void UpdatePostBuildProperties(BuildedProject buildedProjectInfo)
 {
     if (buildedProjectInfo != null)
         ErrorsBox = buildedProjectInfo.ErrorsBox;
 }
 public BuildErrorRaisedEventArgs(ErrorLevel errorLevel, BuildedProject projectInfo)
 {
     ErrorLevel = errorLevel;
     ProjectInfo = projectInfo;
 }
Exemplo n.º 8
0
        private void BuildEvents_OnBuildProjectDone(string project, string projectconfig,
                                                    string platform, string solutionconfig, bool success)
        {
            if (_buildAction == vsBuildAction.vsBuildActionDeploy)
            {
                return;
            }

            var eventTime = DateTime.Now;

            ProjectItem currentProject;

            if (_buildScope == vsBuildScope.vsBuildScopeBatch)
            {
                var projectDefinition = new UniqueNameProjectDefinition(project, projectconfig, platform);
                currentProject = _findProjectItem(projectDefinition, FindProjectProperty.UniqueNameProjectDefinition);
                if (currentProject == null)
                {
                    throw new InvalidOperationException();
                }
            }
            else
            {
                currentProject = _findProjectItem(project, FindProjectProperty.UniqueName);
                if (currentProject == null)
                {
                    throw new InvalidOperationException();
                }
            }

            lock (_buildingProjectsLockObject)
            {
                _buildingProjects.Remove(currentProject);
            }

            BuildedProject buildedProject = _buildedProjects[currentProject];

            buildedProject.Success = success;

            ProjectState projectState;

            switch (_buildAction)
            {
            case vsBuildAction.vsBuildActionBuild:
            case vsBuildAction.vsBuildActionRebuildAll:
                if (success)
                {
                    bool upToDate = (_buildLogger != null && _buildLogger.Projects != null &&
                                     !_buildLogger.Projects.Exists(t => t.FileName == buildedProject.FileName));
                    if (upToDate)
                    {
                        // Because ErrorBox will be empty if project is UpToDate.
                        buildedProject.ErrorsBox = currentProject.ErrorsBox;
                    }

                    projectState = upToDate ? ProjectState.UpToDate : ProjectState.BuildDone;
                }
                else
                {
                    bool canceled = (_buildCancelled && buildedProject.ErrorsBox.ErrorsCount == 0);
                    projectState = canceled ? ProjectState.BuildCancelled : ProjectState.BuildError;
                }
                break;

            case vsBuildAction.vsBuildActionClean:
                projectState = success ? ProjectState.CleanDone : ProjectState.CleanError;
                break;

            case vsBuildAction.vsBuildActionDeploy:
                throw new InvalidOperationException("vsBuildActionDeploy not supported");

            default:
                throw new ArgumentOutOfRangeException();
            }

            OnBuildProjectDone(this, new BuildProjectEventArgs(currentProject, projectState, eventTime, buildedProject));
        }