void OnProjectUpdate(bool begin, IVsHierarchy hierarchy, uint action, bool isSuccess) { var updateAction = new ProjectUpdateAction(action); if (updateAction.IsBuild) { var reason = (begin ? SolutionUpdateEventReason.ProjectBuildStarted : SolutionUpdateEventReason.ProjectBuildFinished); var eventInfo = new SolutionUpdateEventInfo() { Reason = reason, Success = isSuccess, ProjectHierarchy = hierarchy, }; updateEventObserver.OnNext(eventInfo); } else if (updateAction.IsClean) { var reason = (begin ? SolutionUpdateEventReason.ProjectCleanStarted : SolutionUpdateEventReason.ProjectCleanFinished); var eventInfo = new SolutionUpdateEventInfo() { Reason = reason, Success = isSuccess, ProjectHierarchy = hierarchy, }; updateEventObserver.OnNext(eventInfo); } }
public override void UpdateProjectAsync(ProjectUpdateAction update) { var sc = Project.DTE.SourceControl; var fullPath = MSBuildProject.FullPath; if (sc != null) { if (sc.IsItemUnderSCC(fullPath) && !sc.IsItemCheckedOut(fullPath)) { sc.CheckOutItem(fullPath); } } if (update(MSBuildProject)) { Project.Save(); } }
public override async void UpdateProjectAsync(ProjectUpdateAction update) { using (var access = await ProjectLockService.WriteLockAsync()) { var configuredProject = await UnconfiguredProject.GetSuggestedConfiguredProjectAsync(); var project = await access.GetProjectAsync(configuredProject); // // Check out the project from SCC before aply any changes // await access.CheckoutAsync(configuredProject.UnconfiguredProject.FullPath); if (update(project)) { project.Save(); } } }
public abstract void UpdateProjectAsync(ProjectUpdateAction update);