private bool waitForBuildAndCheckErrors(IWorker worker, out ErrorItems errorItems)
        {
            bool         buildSucceeded = false;
            vsBuildState state          = dte.Solution.SolutionBuild.BuildState;

            while (state == vsBuildState.vsBuildStateInProgress)
            {
                System.Threading.Thread.Sleep(500);

                if (worker.CancellationPending)
                {
                    dte.ExecuteCommand("Build.Cancel");
                }
                state = dte.Solution.SolutionBuild.BuildState;
            }

            buildSucceeded = (dte.Solution.SolutionBuild.LastBuildInfo == 0 && state == vsBuildState.vsBuildStateDone);

            // The ErrorList is not significant for the succeeded Build!!!
            // Because the PLC Project can contain errors within not used types.
            // Relevant is only the "LastBuildInfo" object that contains the numer of failed project compilations!

            ErrorList errorList = dte.ToolWindows.ErrorList;

            errorItems = errorList.ErrorItems;


            return(buildSucceeded);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get weather solution is on building or not.
        /// </summary>
        /// <param name="dte"></param>
        /// <returns></returns>
        public static bool OnBuilding(this DTE dte)
        {
            Solution      solution      = dte.Solution;
            SolutionBuild solutionBuild = solution.SolutionBuild;
            vsBuildState  buildState    = solutionBuild.BuildState;

            return(buildState == vsBuildState.vsBuildStateInProgress);
        }
 public void OnBuildDone(vsBuildScope scope, vsBuildAction action)
 {
     Logger.Write("BuildEvents_OnBuildDone scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);
     this._currentBuildState = vsBuildState.vsBuildStateDone;
     this.ExecuteIncrement();
     this._updatedItems.Clear();
     BuildVersionIncrementor.ClearSolutionItemAndFileDateCache();
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Called when a build has been done.
        /// </summary>
        /// <param name="scope">The scope.</param>
        /// <param name="action">The action.</param>
        public void OnBuildDone(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write("BuildEvents_OnBuildDone scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);
            _currentBuildState = vsBuildState.vsBuildStateDone;

            ExecuteIncrement();
            _updatedItems.Clear();
        }
        public void OnBuildDone(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write($"BuildEvents_OnBuildDone scope: {scope} action {action}", LogLevel.Debug);
            _currentBuildState = vsBuildState.vsBuildStateDone;

            ExecuteIncrement();
            _updatedItems.Clear();
            ClearSolutionItemAndFileDateCache();
        }
 public void OnBuildBegin(vsBuildScope scope, vsBuildAction action)
 {
     Logger.Write("BuildEvents_OnBuildBegin scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);
     this._currentBuildState  = vsBuildState.vsBuildStateInProgress;
     this._currentBuildAction = action;
     this._currentBuildScope  = scope;
     this._buildStartDate     = DateTime.Now;
     this.ExecuteIncrement();
     this._updatedItems.Clear();
 }
Ejemplo n.º 7
0
        public async System.Threading.Tasks.Task OnBuildDoneAsync(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write($"BuildEvents_OnBuildDone scope: {scope} action {action}", LogLevel.Debug);
            _currentBuildState = vsBuildState.vsBuildStateDone;

            await ExecuteIncrementAsync();

            _updatedItems.Clear();
            ClearSolutionItemAndFileDateCache();
        }
        public void OnBuildBegin(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write($"BuildEvents_OnBuildBegin scope: {scope} action {action}", LogLevel.Debug);

            _currentBuildState  = vsBuildState.vsBuildStateInProgress;
            _currentBuildAction = action;
            _currentBuildScope  = scope;
            _buildStartDate     = DateTime.Now;

            ExecuteIncrement();
            _updatedItems.Clear();
        }
Ejemplo n.º 9
0
        public async System.Threading.Tasks.Task OnBuildBeginAsync(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write($"BuildEvents_OnBuildBegin scope: {scope} action {action}", LogLevel.Debug);

            _currentBuildState  = vsBuildState.vsBuildStateInProgress;
            _currentBuildAction = action;
            _currentBuildScope  = scope;
            _buildStartDate     = DateTime.Now;

            await ExecuteIncrementAsync();

            _updatedItems.Clear();
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Builds the specified solution.
        /// </summary>
        /// <returns>true if build was successful, false otherwise</returns>
        public Boolean buildSolution()
        {
            Console.WriteLine("Started Build");
            solution.SolutionBuild.Build();

            vsBuildState state = solution.SolutionBuild.BuildState;

            while (state == vsBuildState.vsBuildStateInProgress)
            {
                System.Threading.Thread.Sleep(1000);
                state = solution.SolutionBuild.BuildState;
                this.utils.printErrors();
            }

            return(solution.SolutionBuild.LastBuildInfo == 0 && state == vsBuildState.vsBuildStateDone);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Called when a build begin event has occured.
        /// </summary>
        /// <param name="Scope">The scope.</param>
        /// <param name="Action">The action.</param>
        public void OnBuildBegin(vsBuildScope scope, vsBuildAction action)
        {
            Logger.Write("BuildEvents_OnBuildBegin scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);

            _currentBuildState  = vsBuildState.vsBuildStateInProgress;
            _currentBuildAction = action;
            _currentBuildScope  = scope;
            _buildStartDate     = DateTime.Now;

            ExecuteIncrement();
            _updatedItems.Clear();

#if OLD
            try
            {
                if (action == vsBuildAction.vsBuildActionBuild ||
                    action == vsBuildAction.vsBuildActionRebuildAll)
                {
                    _currentBuildVersion = CreateBuildVersion();

                    if (scope == vsBuildScope.vsBuildScopeSolution)
                    {
                        SolutionItem solutionItem = new SolutionItem(_connect.ApplicationObject.Solution);
                        Execute(solutionItem);
                    }
                    else
                    {
                        Array projects = (Array)_connect.ApplicationObject.ActiveSolutionProjects;
                        foreach (Project p in projects)
                        {
                            SolutionItem solutionItem = new SolutionItem(p);
                            Execute(solutionItem);
                        }
                    }
                }
            }
#endif
        }
 public void OnBuildDone(vsBuildScope scope, vsBuildAction action)
 {
     Logger.Write("BuildEvents_OnBuildDone scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);
     this._currentBuildState = vsBuildState.vsBuildStateDone;
     this.ExecuteIncrement();
     this._updatedItems.Clear();
     BuildVersionIncrementor.ClearSolutionItemAndFileDateCache();
 }
 public void OnBuildBegin(vsBuildScope scope, vsBuildAction action)
 {
     Logger.Write("BuildEvents_OnBuildBegin scope: " + scope.ToString() + " action " + action.ToString(), LogLevel.Debug);
     this._currentBuildState = vsBuildState.vsBuildStateInProgress;
     this._currentBuildAction = action;
     this._currentBuildScope = scope;
     this._buildStartDate = DateTime.Now;
     this.ExecuteIncrement();
     this._updatedItems.Clear();
 }