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

标签 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)。

怎么做?

最佳答案

我添加这个是为了防止有人仍在寻找这个问题的答案,就像我在 2019 年一样。

"How to programmatically open project/solution in already running 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);

希望对大家有所帮助。

关于c# - 如何在已经运行的 Visual Studio 中以编程方式打开项目/解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385918/

相关文章:

C# - 简单验证 - DialogResult

visual-studio - 如何在 Visual Studio 2015 中启用 WiX 项目

asp.net - 在 ASP.NET 5 (vNext) 中使用 "Produce outputs on build"会出现 "Illegal characters in path"构建错误

visual-studio-2015 - Visual Studio 2015 'Show potential fixes' 键盘快捷键

c# - 应用程序仅在触发断点时挂起,.NET、C#、Visual Studio

visual-studio - 如何禁用某个项目的并行构建?

c# - 在 C# 的 Unity 注入(inject)容器中调用 RegisterType 的顺序有关系吗?

c# - 添加 DotNetSeleniumExtras 包扩展时引用类型错误

c# - RabbitMQ 和 SharedQueue 关闭

bash - Visual Studio 集成终端 bash 错误