private void BuildEvents_OnBuildBegin(EnvDTE.vsBuildScope scope, EnvDTE.vsBuildAction action) { try { if (action == EnvDTE.vsBuildAction.vsBuildActionBuild || action == EnvDTE.vsBuildAction.vsBuildActionRebuildAll) { // // Ensure this runs once for parallel builds. // if (Building) { return; } Building = true; } List <EnvDTE.Project> projects = new List <EnvDTE.Project>(); if (scope.Equals(EnvDTE.vsBuildScope.vsBuildScopeSolution)) { projects = DTEUtil.GetProjects(DTE2.Solution); } else { EnvDTE.Project selected = DTEUtil.GetSelectedProject(); if (selected != null) { DTEUtil.GetProjects(selected, ref projects); } } foreach (EnvDTE.Project project in projects) { if (DTEUtil.IsIceBuilderEnabled(project)) { FileTracker.Reap(project); ProjectUtil.SetupGenerated(project); } } } catch (Exception ex) { Package.UnexpectedExceptionWarning(ex); throw; } }