コード例 #1
0
        private void BuildEvents_OnBuildProjectBegin(string project, string projectconfig, string platform, string solutionconfig)
        {
            if (BuildAction == BuildActions.BuildActionDeploy)
            {
                return;
            }

            var eventTime = DateTime.Now;

            ProjectItem currentProject;

            if (BuildScope == BuildScopes.BuildScopeBatch)
            {
                currentProject = FindProjectItemInProjectsByUniqueName(project, projectconfig, platform);
                if (currentProject == null)
                {
                    currentProject = AddProjectToVisibleProjectsByUniqueName(project, projectconfig, platform);
                }
            }
            else
            {
                currentProject = FindProjectItemInProjectsByUniqueName(project);
                if (currentProject == null)
                {
                    currentProject = AddProjectToVisibleProjectsByUniqueName(project);
                }
            }

            lock (_buildingProjectsLockObject)
            {
                BuildingProjects.Add(currentProject);
            }

            ProjectState projectState;

            switch (BuildAction)
            {
            case BuildActions.BuildActionBuild:
            case BuildActions.BuildActionRebuildAll:
                projectState = ProjectState.Building;
                break;

            case BuildActions.BuildActionClean:
                projectState = ProjectState.Cleaning;
                break;

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

            default:
                throw new ArgumentOutOfRangeException();
            }

            OnBuildProjectBegin(this, new BuildProjectEventArgs(currentProject, projectState, eventTime, null));
        }
コード例 #2
0
        private void BuildEvents_OnBuildProjectBegin(string project, string projectconfig, string platform, string solutionconfig)
        {
            if (BuildAction == BuildActions.BuildActionDeploy)
            {
                return;
            }

            var eventTime = DateTime.Now;

            ProjectItem currentProject;

            if (BuildScope == BuildScopes.BuildScopeBatch)
            {
                currentProject = FindProjectItemInProjectsByUniqueName(project, projectconfig, platform);
                if (currentProject == null)
                {
                    currentProject = AddProjectToVisibleProjectsByUniqueName(project, projectconfig, platform);
                }
            }
            else
            {
                currentProject = FindProjectItemInProjectsByUniqueName(project);
                if (currentProject == null)
                {
                    currentProject = AddProjectToVisibleProjectsByUniqueName(project);
                }
            }

            lock (_buildingProjectsLockObject)
            {
                BuildingProjects.Add(currentProject);
            }

            var projectState = GetProjectState();

            OnBuildProjectBegin(this, new BuildProjectEventArgs(currentProject, projectState, eventTime, null));
        }
コード例 #3
0
 /// <summary>
 /// A method called to notify the tool window that an individual project build has begun.
 /// </summary>
 /// <param name="project">The project.</param>
 /// <param name="projectConfig">The project config.</param>
 /// <param name="platform">The platform.</param>
 /// <param name="solutionConfig">The solution config.</param>
 internal void NotifyBuildProjConfigBegin(string project, string projectConfig, string platform, string solutionConfig)
 {
     BuildingProjects.Add(project);
     Caption = GetToolWindowCaption();
     _viewModel.ProgressPercentage = ProgressPercentage;
 }