“可能的重复”旨在打开文件,就像在记事本中一样,我正在寻找打开的 .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;
- 以编程方式打开解决方案:
dte.Solution.Open(path);
- 以编程方式打开一个项目:
dte.ExecuteCommand("File.OpenProject", path);
- 以编程方式打开文件夹:
dte.ExecuteCommand("File.OpenFolder", path);
- 以编程方式打开一个文件:
dte.ExecuteCommand("File.OpenFile", path);
希望对大家有所帮助。
关于c# - 如何在已经运行的 Visual Studio 中以编程方式打开项目/解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385918/