以编程方式确定是否通过调试器启动.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类是值得关注的类。 它包含一些不错的好东西。