// 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); // Get the corresponding roslyn project by matching the project name and the project path. foreach (var projectSnapshot in _projectManager.Projects) { if (string.Equals(projectPath, projectSnapshot.FilePath, StringComparison.OrdinalIgnoreCase)) { _projectManager.HostProjectBuildComplete(projectSnapshot.HostProject); break; } } return(VSConstants.S_OK); }
// 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); }
// 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 projectSnapshot = _projectManager.GetLoadedProject(projectPath); if (projectSnapshot != null) { var workspaceProject = _projectManager.Workspace.CurrentSolution.Projects.FirstOrDefault( wp => FilePathComparer.Instance.Equals(wp.FilePath, projectSnapshot.FilePath)); if (workspaceProject != null) { // Trigger a tag helper update by forcing the project manager to see the workspace Project // from the current solution. _workspaceStateGenerator.Update(workspaceProject, projectSnapshot, CancellationToken.None); } } return(VSConstants.S_OK); }
internal Task OnProjectBuiltAsync(IVsHierarchy projectHierarchy, CancellationToken cancellationToken) { var projectFilePath = _projectService.GetProjectPath(projectHierarchy); return(_projectSnapshotManagerDispatcher.RunOnDispatcherThreadAsync(() => { var projectSnapshot = _projectManager.GetLoadedProject(projectFilePath); if (projectSnapshot != null) { var workspaceProject = _projectManager.Workspace.CurrentSolution.Projects.FirstOrDefault( wp => FilePathComparer.Instance.Equals(wp.FilePath, projectSnapshot.FilePath)); if (workspaceProject != null) { // Trigger a tag helper update by forcing the project manager to see the workspace Project // from the current solution. _workspaceStateGenerator.Update(workspaceProject, projectSnapshot, cancellationToken); } } }, cancellationToken)); }