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)); }
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)); }
private void BuildEvents_OnBuildProjectBegin( string project, string projectconfig, string platform, string solutionconfig) { 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) { var proj = _findProjectItem(project, FindProjectProperty.UniqueName); currentProject = (proj ?? new ProjectItem()).GetBatchBuildCopy(projectconfig, platform); } } else { currentProject = _findProjectItem(project, FindProjectProperty.UniqueName); if (currentProject == null) throw new InvalidOperationException(); } lock (_buildingProjectsLockObject) { _buildingProjects.Add(currentProject); } ProjectState projectState; switch (_buildAction) { case vsBuildAction.vsBuildActionBuild: case vsBuildAction.vsBuildActionRebuildAll: projectState = ProjectState.Building; break; case vsBuildAction.vsBuildActionClean: projectState = ProjectState.Cleaning; break; case vsBuildAction.vsBuildActionDeploy: throw new InvalidOperationException("vsBuildActionDeploy not supported"); default: throw new ArgumentOutOfRangeException(); } OnBuildProjectBegin(this, new BuildProjectEventArgs(currentProject, projectState, eventTime, null)); }
private void BuildEvents_OnBuildProjectBegin( string project, string projectconfig, string platform, string solutionconfig) { 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) { var proj = _findProjectItem(project, FindProjectProperty.UniqueName); currentProject = (proj ?? new ProjectItem()).GetBatchBuildCopy(projectconfig, platform); } } else { currentProject = _findProjectItem(project, FindProjectProperty.UniqueName); if (currentProject == null) { throw new InvalidOperationException(); } } lock (_buildingProjectsLockObject) { _buildingProjects.Add(currentProject); } ProjectState projectState; switch (_buildAction) { case vsBuildAction.vsBuildActionBuild: case vsBuildAction.vsBuildActionRebuildAll: projectState = ProjectState.Building; break; case vsBuildAction.vsBuildActionClean: projectState = ProjectState.Cleaning; break; case vsBuildAction.vsBuildActionDeploy: throw new InvalidOperationException("vsBuildActionDeploy not supported"); default: throw new ArgumentOutOfRangeException(); } OnBuildProjectBegin(this, new BuildProjectEventArgs(currentProject, projectState, eventTime, null)); }