。但是如果我使用msgbox函數,msgbox彈出,所以到達線。的Debug.WriteLine顯示當使用</p> <pre><code>using System.Diagnostics; </code></pre> <p>和</p> <pre><code>Debug.WriteLine("Test"); </code></pre> <p>已經運行應用程序,沒有 「測試」 可以在輸出中看到什麼
我在錯誤的窗口看,或者我有什麼改變?
我正在使用VC#Express。
。但是如果我使用msgbox函數,msgbox彈出,所以到達線。的Debug.WriteLine顯示當使用</p> <pre><code>using System.Diagnostics; </code></pre> <p>和</p> <pre><code>Debug.WriteLine("Test"); </code></pre> <p>已經運行應用程序,沒有 「測試」 可以在輸出中看到什麼
我在錯誤的窗口看,或者我有什麼改變?
我正在使用VC#Express。
有此行爲
Debug.WriteLine
呼叫不是最終方案診斷最簡單的方法是將代碼更改爲
#if DEBUG
Console.WriteLine("the message");
#endif
如果打印,那麼你有一個問題與跟蹤偵聽器,否則你正在編譯中發佈
我替換了Console.WriteLine(「消息」);與MessageBox.Show(「這是一條消息」);並且工作,所以調試模式打開。 – Zurechtweiser 2012-02-21 11:15:22
Mono C#編譯器的'--debug'選項('mcs --debug')只能在二進制文件中生成調試符號,但它不會設置DEBUG和TRACE。對'Debug.WriteLine()'使用'mcs --debug -d:DEBUG -d:TRACE Program.cs'並且與工作相關。 – Palec 2017-03-29 17:44:22
Debug.WriteLine("Test");
當您處於調試模式時,應顯示在輸出窗口中。如果您想調試運行的應用程序(發佈模式),則可以使用Trace並在Windows事件中顯示。
裏面調試,這就是我正在看的地方。輸出,顯示最底部的「調試」輸出。 – Zurechtweiser 2012-02-20 23:19:49
我更新了答案 – 2012-02-20 23:45:21
@Sofian,對,無論問題是什麼,這個問題都不值得讚揚。有時會發生。 – Steve 2012-02-20 23:57:31
我相信「Debug.WriteLine()」寫入Listeners集合。從那裏你可以確定調試信息的寫入位置。默認情況下,「輸出」應該出現在顯示的位置,但如果您在查看信息時遇到問題,請創建一個不同的偵聽器來獲取調試信息。
這裏是MSDN例子:
TextWriterTraceListener myWriter = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(myWriter);
這是正確的,我有一個
我選擇了'System.Console.Error'而不是'System.Console.Out'。調試消息不應該與實際輸出不可分割地混合;輸出重定向允許我在我的設置中將它們分開。 – Palec 2017-03-29 17:37:15
['ConsoleTraceListener'](https://msdn.microsoft.com/en-us/library/system.diagnostics.consoletracelistener.aspx)是'TextWriterTraceListener'的一個簡約的子類,它只是提供構造函數以方便初始化到標準流編寫器:'新的ConsoleTraceListener()'使用'Console.Out','新的ConsoleTraceListener(true)'使用'Console.Error'。 [查看其源代碼](https://referencesource.microsoft.com/#System/compmod/system/diagnostics/ConsoleTraceListener.cs)稍後,Console.SetOut()和Console.SetError()調用不影響他們。 – Palec 2017-03-29 18:52:08
我不知道任何人都提到了這個原因,但是如果我以調試模式編譯,然後運行程序(Ctrl + F5)而不是選擇開始調試(F5),我也不會看到Debug.WriteLine
。
因此,它是不夠的,只是在調試模式下編譯,你還必須積極,調試程序,而不只是運行它:)
正確。你必須有一個調試器「附加」 – 2015-08-11 15:06:28
菜單>工具>選項>調試>常規:
在項目屬性>構建:
上的輸出窗口:
大約一年後,這個答案仍然很棒。在取消選中「將所有輸出窗口文本重定向到直接窗口」後,我的Debug.WriteLine(「Text」);開始工作。 – Neill 2016-01-26 13:39:25
「確保」將所有輸出窗口文本重定向到立即窗口「不被選中」是我必須做的。奇怪我怎麼不記得必須這樣做,它工作得很好.. – eaglei22 2016-09-12 18:40:39
太棒了!不確定爲什麼在vs2013中默認選中「將所有輸出窗口文本重定向到立即窗口」。 vs2015不是。這就是爲什麼我總是困惑爲什麼項目在vs2015中顯示出痕跡,但我在vs2013中看不到任何東西。 – Louis 2016-12-08 14:44:38
對於任何谷歌搜索: 雖然有指向在配置文件中去除聽衆的各種答案的部分
<handlers>
也留意
<remove name="OPTIONSVerbHandler" />
因爲這也抑制了調試輸出。
如果其他答案中的任何一個都不起作用。嘗試在Debug.WriteLine
行中放置一個斷點並查看它是否被擊中。
如果未被擊中,原因是因爲舊版本的代碼正在執行。
爲了解決這個問題,首先檢查這個
進入工具 - 選項
的項目和解決方案 - >生成和運行選擇「總是建立」 下的「上運行,項目過期時「
並檢查臨時文件是否被清除。檢查這SO Question
這對我有效。
如果即使這失敗嘗試重新啓動VS.大部分時間都在使用。
你稱之爲「輸出」是什麼? – 2012-02-20 23:14:52
當然你正在vs vs ide中運行你的應用程序?對? – Steve 2012-02-20 23:15:42
@Henk Holterman輸出,顯示最底部的「調試」輸出。 – Zurechtweiser 2012-02-20 23:19:04