以编程方式确定是否通过调试器启动.NET WinForms应用程序

时间:2010-09-30 15:54:43

标签: c# .net visual-studio debugging

我想知道是否有一种编程方式可以在运行时确定应用程序是通过调试器启动还是启动已安装的应用程序版本。我的应用程序目前正在通过ClickOnce进行部署。

当应用程序在调试模式与生产模式下运行时,我想要更改某些设置。

我知道构建配置解决方案 - 我很好奇是否有一种编程方式来确定此信息

由于

4 个答案:

答案 0 :(得分:11)

使用Debugger.IsAttached

它是System.Diagnostics命名空间中的静态方法,因为您可以从名称中推断出,如果连接了调试器,它将返回true(无论是否在启动后连接 )。

您可以将其放在应用程序入口点(main)中,以查明应用程序是否已附加调试器,但请记住,以后可以将其附加。

答案 1 :(得分:4)

如上所述,您可以使用Debugger.IsAttached。但是,请注意,这并不一定意味着调试器启动应用程序,它可能已正常启动,然后调试器附加到进程(我不知道是否差异与你相关)。

答案 2 :(得分:1)

判断它是否已在VS Debugger中启动:

if(System.AppDomain.CurrentDomain.DomainManager.ToString()。ToLower()。Contains(“vshost”)== true)

答案 3 :(得分:0)

您可以使用:Debugger.IsAttached

Debugger课程是值得关注的课程。它包含一些不错的好东西。