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); }
/// <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(); }
/// <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(); }
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(); }
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(); }
/// <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); }
/// <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(); }