我有一个C#Console应用程序而不是运行预构建步骤(以获取NuGet包)。
当我调试这个时,我想传入一个参数并显示控制台。当我没有调试它时,我不想看到它。我甚至不想让它在那里闪过一秒钟。
我已经找到了隐藏它的方法,在它显示之后。但除非我愿意将它从控制台应用程序更改为Windows应用程序,否则我无法找到永远不会显示的方法。 (如果我能在需要时找到显示控制台的方法,我会这样做。)
答案 0 :(得分:2)
构建为Windows应用程序并在需要时显示控制台。要在需要时显示控制台,请使用P / Invoke调用AllocConsole
(pinvoke.net具有您需要的声明)。
(控制台子系统进程总是获取一个控制台,如果有一个控制台,则为父进程,否则为新进程。这就是Windows在深层运行的方式。)
答案 1 :(得分:-1)
使用FreeConsole
WINAPI功能:
http://pinvoke.net/default.aspx/kernel32/FreeConsole.html
另一种解决方案是简单地将WinForms应用程序切换为项目类型。然后不会分配任何控制台(并且您不需要显示表单)。