2017-08-30 116 views
1
Console.Out.WriteLine(111); //<-- '111' is shown in 'Output' window 
Console.Error.WriteLine(222); //<-- where I can see '222' within IDE? 

'111' 成功表現在輸出窗口(View |輸出,按Ctrl + Alt鍵 + Ø):
Screen-shot of the Output window with '111' visible
我在哪裏可以看到'222'(在IDE內)?如何查看標準錯誤在Visual Studio 2015年(C#,的WinForms)

P.S .:上面的代碼工作。我可以通過做WindowsFormsApplication1.exe >output.txt 2>error.txt('output.txt'將包含'111'和'error.txt'將包含'222')來確保它。但問題是直接從IDE查看。 (如果Visual Studio 2015完全不允許它 - Visual Studio 2017是否解決了這個問題?)

+0

輸出和錯誤是從Unix來的概念。他們回到輸入和輸出重定向被認爲是有用的工具和用戶使用teletypes與計算機進行交互的日子。它們在GUI應用程序中沒有任何意義,只能在控制檯應用程序中生存。您可以在Output窗口中看到Console.WriteLine輸出本身就是一種僥倖,它是由Visual Studio Hosting Process選項實現的功能。所以只能在VS中工作,並且只能在調試時使用。並沒有未來,該選項在VS2017中被刪除。 –

+0

如果你真的想要,那麼你可以使用Console.SetOut()和SetError(),提供一個TextWriter實現,將聊天器放入一個TextBox中。 –

+0

@HansPassant,好吧,我認爲stdin,stdout,stderr是構建每個應用程序的基礎。雖然現代Windows GUI應用程序很少使用它們,但這並不意味着它們不被使用。 IDE不奇怪提供任何可用的方法來檢查它們。 – Sasha

回答

0

嗯,我找到了。

The Visual Studio 託管進程是阻止stderr與stdout一起顯示在Output窗口中的東西。

如果disable hosting process,將在輸出窗口,以及顯示:
Screen-shot of the Output window with both '111' and '222' visible