How do I programmatically refresh/reload a VS project after modifying the underlying file?

前端 未结 2 1264
别跟我提以往
别跟我提以往 2021-01-05 04:47

I am developing a Visual Studio package and I have written some code that will make a file in Solution Explorer dependant upon another file.

What this means is that

2条回答
  •  灰色年华
    2021-01-05 05:50

    Here is my code (with reactivating the old window):

    public void RefreshSolutionExplorer(EnvDTE.Project activeProject, string captionOfActiveWindow)
    {
      DTE2 dte2 = activeProject.DTE as DTE2;
      string solutionName = Path.GetFileNameWithoutExtension(dte2.Solution.FullName);
      string projectName = activeProject.Name;
    
      // Activate SolutionExplorer window
      dte2.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate();
      // Select your project to be updated
      dte2.ToolWindows.SolutionExplorer.GetItem(solutionName + @"\" + projectName).Select(vsUISelectionType.vsUISelectionTypeSelect);
      // Refresh SolutionExplorer window
      dte2.ExecuteCommand("View.Refresh", String.Empty);
      // Reactivate your old window
      dte2.Windows.Item(captionOfActiveWindow).Activate();
    }
    

提交回复
热议问题