Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 208
cordialgerm Avatar asked Sep 30 '10 15:09

cordialgerm


2 Answers

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.

like image 139
Oded Avatar answered Nov 14 '22 22:11

Oded


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).

like image 33
matiash Avatar answered Nov 14 '22 22:11

matiash