Я работаю над приложением, которое устанавливает системную клавиатуру . Я не хочу устанавливать этот крючок, когда я запускаю отладочную версию изнутри визуальной студии (иначе она повесила бы студию и, в конечном итоге, систему), и я могу избежать этого, проверив, установлен ли символ DEBUG ,Проверьте, запущено ли приложение из Visual Studio
Однако, когда я отладки релиза версии приложения на есть способ обнаружить, что она была запущена с внутренней визуальной студии, чтобы избежать тех же проблем? Очень досадно, чтобы перезапустил студию/компьютер, только потому, что я работал над созданием релиза , и хочу исправить некоторые ошибки, используя отладчик, у которого забыл вернуться к сборке отладки.
В настоящее время я использую что-то вроде этого, чтобы проверить для этого сценария:
System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
Я бы назвал это «грубый путь силы», который работает в моем месте, но я хотел бы знать, есть ли еще одна (лучший) способ обнаружения этого сценария.
Примечание: Я получил следующие строки при попытке этой техники vstest.executionengine.x86.exe WebDev.WebServer20.exe запуска из теста Visual Studio и с помощью кода, работающего под IIS Express. Поэтому любому, кто читает это, может потребоваться соответствующим образом скорректировать код. – 2015-08-07 09:23:26