Я работаю над приложением, которое устанавливает системную клавиатуру крюк. Я не хочу устанавливать этот крючок, когда запускаю отладку строить изнутри визуальной студии (иначе она повесила бы студию и в конечном итоге система), и я могу избежать этого, проверив, Определяется символ DEBUG.
Однако, когда я отлаживаю версию версии приложения, есть способ обнаружить, что он был запущен изнутри визуально студии, чтобы избежать такой же проблемы? Очень досадно, что нужно перезапустите студию/компьютер, только потому, что я работал над выпустить сборку и исправлять некоторые ошибки с помощью отладчика, имеющего забыл вернуться к сборке отладки.
В настоящее время я использую что-то вроде этого, чтобы проверить этот сценарий:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
Я бы назвал это "грубой силой", которая работает в моей настройке, но я хотел бы знать, есть ли другой (лучший) способ обнаружения этого сценария.