我正在使用VB Express 2008.我知道如何判断代码是否构建在调试更多或发布,但现在我想知道如何判断它是否在Visual Studio IDE中运行(以便我可以添加一些调试MsgBox(),而不用担心它们会显示我是否意外地发布了调试版本)。如何判断(VB)代码是否在Visual Studio中运行?
回答
是System.Diagnostics.Debugger.IsAttached你在找什么?
当开发人员尝试调试运行在客户上的生产代码时会发生什么?代码更改路径,并认为它使用您发布的解决方案从VS IDE运行。检查附加的调试器只会告知代码是否附加了活动的调试器,而不是在开发过程中代码位于IDE中。 – StarPilot 2014-06-06 17:26:42
你有更好的解决方案吗,@ StarPilot?由于这是被接受的答案,它似乎是OP寻找的解决方案...... – Guy 2014-06-06 21:23:23
只要开发者没有选择不使用vshost.exe,代码就可以检查它的可执行文件名是否包含vshost 。但是可以选择退出,所以它不能100%保证准确。正如我上面评论的那样,问题在于检查调试是否比在IDE中运行更大的可能性。不幸的是,在VSExtension代码之外,没有100%的方法来判断IDE是否托管运行代码。 – StarPilot 2014-06-06 22:06:50
如果您正在构建Test and Prod,请考虑在代码中使用预处理器指令。
#If DEBUG Then
MsgBox("Foo")
#End If
这倒下,当然,如果你出货调试的二进制到非开发环境。我知道这是从你问这个问题的另一个角度(IDE)来攻击问题。
尝试,如果你想确保你永远不会显示调试信息给用户,你可以使用Debug.Write()
和Debug.WriteLine()
检查System.Diagnostics.Debugger
对不起,但@guy打了一分钟(+1,虽然) – Mawg 2010-09-08 04:12:10
的IsAttached财产。这些命令将输出提供给调试输出窗口的文本。请注意,您可以将调试输出窗口攻击到在客户机器上运行生产代码的程序,而无需安装开发环境!
测试连接的调试器并不表示调试器也在IDE中。在很多环境中,将调试器附加到在客户系统上运行的生产代码中以识别特定客户的安装和使用情况出了什么问题是相当普遍的。测试一个调试器,然后假设你在一个IDE中将会在生产环境中排除调试器的这种用法。
- 1. 如何判断我的Javascript代码是否在Jint中运行?
- 2. 如何判断代码是否在knitr/rmarkdown环境中执行?
- 3. 如何判断Rails代码是否正在通过rake或script/generate运行?
- 4. 如何判断码头是否冻结?
- 5. 如何在Visual Studio代码中运行.Net代码?
- 6. 如何判断是否安装了Visual Studio 2008 SP1?
- 7. python程序如何判断它是否在emacs中运行?
- 8. 如何判断代码访问安全性是否允许在库代码中
- 9. 如何判断EXC_BAD_ACCESS错误是否是我的代码错误?
- 10. 我的(C++)代码如何判断它是否在Eclipse中进行编译?
- 11. 如何判断AIX机器是否在power7 cpu上运行?
- 12. 如何判断厨师是否在虚拟机上运行
- 13. 如何判断java日志sockethandler是否仍在运行?
- 14. 如何判断ob_gzhandler是否正在运行?
- 15. 如何判断屏幕是否在运行?
- 16. 如何判断一个侦听器是否已经在运行?
- 17. 如何判断H2O 3.11.0.266是否在使用GPU运行?
- 18. 如何判断我是否在网络服务器下运行?
- 19. 应用程序如何判断它是否在hackintosh上运行?
- 20. 我的Perl程序如何判断是否在mod_perl下运行?
- 21. 如何判断全屏应用程序是否正在运行?
- 22. 如何判断AsyncTaskLoader运行
- 23. 在Visual Studio代码中添加断点
- 24. 如何判断您是否在Visual Studio 2012上安装了Service Pack 1和2?
- 25. 如何在Visual Studio代码中找到'任务运行模板'?
- 26. 如何在Visual Studio代码中运行gulp任务?
- 27. 如何在Visual Studio代码编辑器中运行asp.net mvc 4.5?
- 28. 如何在Visual Studio 2015中运行C#代码文件
- 29. 如何判断.NET编译代码是否使用p/invoke?
- 30. 如何判断在浏览器中还是在NodeJS中运行?
为什么你不试试Debug.Assert? - http://msdn.microsoft.com/en-us/library/kssw4w7z.aspx – 2010-09-02 02:34:42
因为它“检查条件;如果条件为false,显示一个消息框显示调用堆栈”,我不想要调用堆栈。在Borland产品中检查在IDE中运行是否够简单,所以我希望它也可以在VS 2008中使用。 – Mawg 2010-09-02 02:46:29