我想知道是否有一种编程方式可以在运行时确定应用程序是通过调试器启动还是通过启动已安装的应用程序启动。我的应用程序目前是通过ClickOnce部署的。
当应用程序在调试模式下运行与生产模式下运行时,我希望更改某些设置。
我知道有构建配置解决方案--我想知道是否有一种编程方式来确定这些信息
谢谢
我想知道是否有一种编程方式可以在运行时确定应用程序是通过调试器启动还是通过启动已安装的应用程序启动。我的应用程序目前是通过ClickOnce部署的。
当应用程序在调试模式下运行与生产模式下运行时,我希望更改某些设置。
我知道有构建配置解决方案--我想知道是否有一种编程方式来确定这些信息
谢谢
使用Debugger.IsAttached
方法。
Debugger.IsAttached
是System.Diagnostics
命名空间中的静态方法。从名称可以推断出,如果调试器已连接(无论是否在启动后连接),则此方法将返回true。
你可以将这个方法放在应用程序入口点(main
),以便查明应用程序是否使用调试器启动,但请注意,它也可能会在稍后被连接。
如上所述,您可以使用Debugger.IsAttached。但是请注意,这并不一定意味着应用程序是由调试器启动的,它可能是正常启动然后将调试器附加到进程中(我不知道这种差异是否对您有影响)。
判断是否在VS调试器中启动:
if(System.AppDomain.CurrentDomain.DomainManager.ToString().ToLower().Contains("vshost") == true)