我正在研究安装系统范围键盘 钩子的应用程序。我不想在Visual Studio中运行调试 构建时安装此钩子(否则它将挂起工作室 并最终导致系统),我可以通过检查是否定义了 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下运行快速启动代码,我得到了下面的字符串。所以任何人阅读这个可能需要相应地调整代码。 – 2015-08-07 09:23:26