コード例 #1
0
            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);
                }
            }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
 public abstract void UpdateProjectAsync(ProjectUpdateAction update);