开发者

Programmatically determine if .NET WinForms application launched via debugger or not

I would like to know if there is a programmatic way of determining at run-time if the application was launched via the debugger or by launching an installed version of the application. My app is currently being deployed via ClickOnce.

There are certain settings I would like to alter when the app is run in debug mode vs production mode.

I am aware of the 开发者_运维问答build configurations solution -- I am curious if there is a programmatic way to determine this information

Thanks


Use Debugger.IsAttached.

It is a static method within the System.Diagnostics namespace, as you can deduce from the name, it will return true if the debugger is attached (whether it was attached after launch or not).

You can put this in the application entry point (main) in order to find out if the application was lauched with a debugger attached, but keep in mind that it can be attached at a later time.


As mentioned, you can use Debugger.IsAttached. However, be aware that this doesn't necessarily mean that the application was launched by the debugger, it may have been launched normally and then a debugger was attached to the process (I don't know if the difference is relevant for you).


To tell if it has been launched in the VS Debugger:

if(System.AppDomain.CurrentDomain.DomainManager.ToString().ToLower().Contains("vshost") == true)


You can use: Debugger.IsAttached

The Debugger class is a class worth looking at. It contains some nice goodies.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜