我有一個C#windows服務。在該服務代碼中,我定義了Main()並捕獲各種參數。如果參數「安裝」,我會調用代碼來安裝該服務。請注意,當arg安裝時,我沒有運行該服務,只是安裝它,所以在我看來,這僅僅是一個控制檯應用程序。Console.WriteLine發送輸出到vs.net進行調試,但是當從控制檯運行時,我什麼都看不到
當我在vs.net 2012中調試代碼時,在調試窗口中看到我的所有Console.WriteLine()輸出。我相信這是因爲VS.NET將STDOUT映射到調試窗口。
但是,如果我打開命令提示符並運行命令行myservice.exe install
,控制檯窗口沒有輸出。如果我運行myservice.exe install > out.txt
,則會看到out.txt中的所有輸出。發生了什麼以及如何讓Main()代碼實際將輸出發送到控制檯窗口?
Err ...不是'> out.txt'的重點將輸出重定向到文件?如果你只是執行'myservice.exe install'會怎麼樣? – 2013-03-22 06:38:03
考慮使用* log4net *,* nlog *或其他日誌框架輕鬆切換輸出 – 2013-03-22 06:39:42
slolife從我的經驗請檢查您的項目設置VS2012。我的感覺是,你可能在那裏檢查選項,禁用'console'視圖。 – Mithrand1r 2013-03-22 06:40:08