c# - VS 如何编译控制台应用程序以显示 "Press any key to continue"?

标签 c# .net visual-studio console

当我开发 C# 控制台应用程序(将在服务器上运行)并使用 Visual Studio 运行它时,我在程序终止前收到“按任意键继续”消息。

但是,当我使用 CSC 手动编译完全相同的 C# 代码文件时,我的程序没有显示该消息并且它在完成其逻辑后立即终止。

有谁知道我如何在不使用 VS 且不更改 C# 代码或添加 ReadLine() 的情况下编译代码时实现相同的功能?

更新:我学习 C# 时曾出现过相同的消息,我曾经将 TextPad 与 CSC 一起使用,并且该消息过去常常在不添加任何 Write(Line)/Read(Line) 调用的情况下出现

最佳答案

这与编译器无关 - 如果您按 F5 调试它而不是 Ctrl-F5 不调试运行,则 VS 不会显示提示.这大概是为了让您不会错过它产生的任何输出。

为此,Visual Studio 运行 cmd.exe 告诉它运行您的可执行文件然后暂停:

"C:\WINDOWS\system32\cmd.exe" /c ""...\ConsoleApplication1.exe"  & pause"

当您调试时它可能不会这样做,因为获取子进程的子进程的进程 ID 有点困难。

要向您的程序添加类似的选项,可以使用命令行开关告诉应用程序本身暂停,或者使用批处理文件运行它然后暂停,或者使用它们的快捷方式 cmd.exe/c.

关于c# - VS 如何编译控制台应用程序以显示 "Press any key to continue"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1103402/

相关文章:

c# - 如何将经过身份验证的用户更改为 Google Drive API

c# - String.Format ("{0:C2}", -1234) (货币格式)将负数视为正数

c# - 使用 out 参数在 NSubstitute 模拟方法中返回不同的值

c# - 你能在 ClosedXML (C#) 中填充一个范围吗

c# - 重写表单事件方法的基本调用的必要性

c# - 选择每个产品的最后一个不可为空的项目?

c# - 是否可以在 .NET 中启动下载管理器(一个进程)

.NET 应用程序到 Mac OS X 应用程序?

c# - Visual Studio 查找所有引用忽略 var

控制台应用程序引用的 C# 版本控制