Программно определить, запущено ли приложение .NET WinForms через отладчик или нет - PullRequest
5 голосов
/ 30 сентября 2010

Я хотел бы знать, существует ли программный способ определения во время выполнения, было ли приложение запущено через отладчик или путем запуска установленной версии приложения.В настоящее время мое приложение развертывается с помощью ClickOnce.

Существуют определенные параметры, которые я хотел бы изменить, когда приложение запускается в режиме отладки по сравнению с рабочим режимом.

Мне известно о решении по настройке сборки- Мне любопытно, если есть программный способ определить эту информацию

Спасибо

Ответы [ 4 ]

11 голосов
/ 30 сентября 2010

Использование Debugger.IsAttached.

Это статический метод в пространстве имен System.Diagnostics, так как вы можете вывести из имени, он вернет true, если отладчик подключен (был ли он подключен после запуска или нет).

Вы можете поместить это в точку входа приложения (main), чтобы узнать, было ли приложение запущено с подключенным отладчиком, но имейте в виду, что оно может быть подключено позже.

4 голосов
/ 30 сентября 2010

Как уже упоминалось, вы можете использовать Debugger.IsAttached .Однако следует помнить, что это не обязательно означает, что приложение было запущено отладчиком, возможно, оно было запущено нормально, а затем к процессу был присоединен отладчик (я не знаю, еслиактуально для вас).

1 голос
/ 30 декабря 2010

Чтобы узнать, был ли он запущен в отладчике VS:

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

0 голосов
/ 30 сентября 2010

Вы можете использовать: Отладчик. Установлено

Класс Debugger - это класс, на который стоит обратить внимание. Он содержит несколько хороших вкусностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...