我正在使用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. 如何判斷代碼是否從Visual Studio/Cassini本地運行
- 2. 如何判斷我的jQuery代碼是否在iFrame中運行?
- 3. 如何判斷我的Javascript代碼是否在Jint中運行?
- 4. 如何判斷代碼是否在Google App Engine上運行?
- 5. 如何判斷代碼是否在knitr/rmarkdown環境中執行?
- 6. 如何判斷Rails代碼是否正在通過rake或script/generate運行?
- 7. 如何判斷碼頭是否凍結?
- 8. 如何判斷是否安裝了Visual Studio 2008 SP1?
- 9. 如何在Visual Studio代碼中運行所有測試代碼
- 10. 如何在Visual Studio代碼中運行.Net代碼?
- 11. python程序如何判斷它是否在emacs中運行?
- 12. 是否需要Visual Studio在.net源代碼上運行Fortify?
- 13. 如何判斷代碼訪問安全性是否允許在庫代碼中
- 14. 如何判斷EXC_BAD_ACCESS錯誤是否是我的代碼錯誤?
- 15. IBM Worklight - 如何判斷Worklight Studio是否正在運行v6.0.0.0或v6.0.0.1?
- 16. 我的(C++)代碼如何判斷它是否在Eclipse中進行編譯?
- 17. 如何判斷cntlm是否正在運行?
- 18. 如何判斷H2O 3.11.0.266是否在使用GPU運行?
- 19. 應用程序如何判斷它是否在hackintosh上運行?
- 20. 如何判斷一個偵聽器是否已經在運行?
- 21. 如何判斷我是否在網絡服務器下運行?
- 22. 如何判斷WCF服務是否在主機上運行?
- 23. 如何判斷全屏應用程序是否正在運行?
- 24. 如何判斷屏幕是否在運行?
- 25. 如何判斷moodle cron是否正在運行?
- 26. 我的Perl程序如何判斷是否在mod_perl下運行?
- 27. 如何判斷java日誌sockethandler是否仍在運行?
- 28. 如何判斷AIX機器是否在power7 cpu上運行?
- 29. 如何判斷ob_gzhandler是否正在運行?
- 30. 如何判斷OrbBasic程序是否正在運行
爲什麼你不試試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