如何在已经运行的Visual Studio中以编程方式打开项目/解决方案?

时间:2017-04-13 07:19:33

标签: c# visual-studio visual-studio-2015

“可能的重复”旨在打开文件,就像在记事本中一样,我正在寻找打开.csproj / .sln文件而不仅仅是原始文本文件,而是作为完整的项目/解决方案,所以例如如果我的路径是.sln文件,应该打开整个解决方案,而不仅仅是单个.sln文件。

我以这种方式打开项目/解决方案:

var psi = new System.Diagnostics.ProcessStartInfo(path);
System.Diagnostics.Process.Start(psi);

其中path是项目/解决方案的路径。它工作正常,但它会启动另一个 Visual Studio来打开给定的文件。

我想在已经运行的VS中打开项目/解决方案(如果没有,在这种情况下,确保启动VS)。

怎么做?

1 个答案:

答案 0 :(得分:2)

我要添加此内容,以防有人像我在2019年那样仍在寻找该问题的答案。

  

如何在已经运行的Visual Studio中以编程方式打开项目/解决方案

我也添加了如何打开文件夹文件,只是为了完整性。

请确保将包含这些语句的代码放在try/catch中,以处理找不到的路径等。

假设:

  using EnvDTE;
  using EnvDTE80;
  using Microsoft.VisualStudio.Shell;

  var dte = Package.GetGlobalService(typeof(_DTE)) as DTE2;
  1. 要以编程方式打开解决方案
   dte.Solution.Open(path);
  1. 要以编程方式打开项目
  dte.ExecuteCommand("File.OpenProject", path);
  1. 要以编程方式打开文件夹
  dte.ExecuteCommand("File.OpenFolder", path);
  1. 要以编程方式打开文件
  dte.ExecuteCommand("File.OpenFile", path);

我希望能对某人有所帮助。