// This gets called when the project has finished building. public int UpdateProjectCfg_Done(IVsHierarchy pHierProj, IVsCfg pCfgProj, IVsCfg pCfgSln, uint dwAction, int fSuccess, int fCancel) { var projectPath = _projectService.GetProjectPath(pHierProj); var project = _projectManager.GetLoadedProject(projectPath); if (project != null && project.WorkspaceProject != null) { var workspaceProject = _projectManager.Workspace.CurrentSolution.GetProject(project.WorkspaceProject.Id); if (workspaceProject != null) { // Trigger a tag helper update by forcing the project manager to see the workspace Project // from the current solution. _projectManager.WorkspaceProjectChanged(workspaceProject); } } return(VSConstants.S_OK); }
// Internal for testing internal void ProjectOperations_EndBuild(object sender, BuildEventArgs args) { if (args == null) { throw new ArgumentNullException(nameof(args)); } _foregroundDispatcher.AssertForegroundThread(); if (!args.Success) { // Build failed return; } var projectItem = args.SolutionItem; if (!_projectService.IsSupportedProject(projectItem)) { // We're hooked into all build events, it's possible to get called with an unsupported project item type. return; } var projectPath = _projectService.GetProjectPath(projectItem); var project = _projectManager.GetLoadedProject(projectPath); if (project != null && project.WorkspaceProject != null) { var workspaceProject = _projectManager.Workspace.CurrentSolution.GetProject(project.WorkspaceProject.Id); if (workspaceProject != null) { // Trigger a tag helper update by forcing the project manager to see the workspace Project // from the current solution. _projectManager.WorkspaceProjectChanged(workspaceProject); } } }