Console.WriteLine在vs.net中将输出发送到debug,但是当从控制台运行时,我什么也看不见

时间:2013-03-22 06:36:22

标签: c# .net command-line windows-services stdout

我有一个C#windows服务。在该服务代码中,我定义Main()并捕获各种参数。如果arg是“安装”,我调用代码来安装服务。请注意,当arg安装时,我没有运行该服务,只是安装它,所以在我看来,这只不过是一个控制台应用程序。

当我调试vs.net 2012中的代码时,我在调试窗口中看到了所有的Console.WriteLine()输出。我相信这是因为VS.NET将STDOUT映射到调试窗口。

但是,如果我打开命令提示符并运行命令行myservice.exe install,则控制台窗口没有输出。如果我运行myservice.exe install > out.txt,我会看到out.txt中的所有输出。发生了什么,如何让Main()代码实际将输出发送到控制台窗口?

1 个答案:

答案 0 :(得分:3)

这可能是由于项目的输出类型所致;请注意,默认的Windows应用程序输出类型不会自动显示控制台窗口。 为此,您可能希望将输出类型更改为控制台应用程序。