我正在尝试启动Visual Studio 2017并以编程方式打开解决方案,如下所示。问题是,当我运行它时,VS2017打开,加载解决方案并立即关闭。我已经搜索过,没有找到与打开VS解决方案相似的代码类似问题的人。什么可能导致这种行为?如何防止VS2017立即关闭?永远不会遇到例外。
private void OpenVisualStudio(string file)
{
try
{
System.Type t = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Activator.CreateInstance(t);
dte.MainWindow.Visible = true;
dte.Solution.Open(file);
}
catch (Exception e)
{
Logger.GetInstance().Write(e.StackTrace, e.Message, LoggingLevel.Error);
}
}
更新:如果我在示波器的末端放置一个断点并在加载VS后继续命中,则不会关闭。在检查任务管理器之后,Visual Studio的实例似乎根本没有真正关闭...只有窗口才是。即使在手动退出编程性创建的VS实例和停止调试会话后,编程创建的实例在任务管理器中仍然可见。
有dte.mainwindow.activate((。您尝试使用过吗?VS实例在任务管理器中存在一个已知问题,而不是完全关闭,但仅在强制关闭VS时才发生。
将DTE.UserControl
属性设置为true
,VS将不再关闭。
文档中的相关段落:
如果环境不在用户控制之下,而最后一个外部 自动化客户端断开连接,然后环境关闭。