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

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

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

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

谢谢

使用Debugger.IsAttached

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

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

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

要判断它是否已在VS调试器中启动:

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

您可以使用: Debugger.IsAttached

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