Moa*_*ini 9 .net c# console visual-studio
当我开发一个C#控制台应用程序(它将在服务器上运行)并使用Visual Studio运行它时,我会在程序终止之前收到"按任意键继续"消息.
但是,当我使用CSC手动编译完全相同的C#代码文件时,我的程序没有显示该消息,并在完成其逻辑后立即终止.
有没有人知道如何在不使用VS编译代码的情况下创建相同的功能,并且在没有更改C#代码的情况下添加ReadLine()?
更新:我学习C#时出现的相同消息,我曾经使用带有CSC的TextPad,并且该消息过去没有添加任何Write(Line)/ Read(Line)调用
Pet*_*ham 22
它与编译器无关 - 如果你按下F5它来调试而不是Ctrl-F5在没有调试的情况下运行,那么VS就不会显示提示符.这可能是因为你不会错过它产生的任何输出.
为此,Visual Studio运行cmd.exe,告诉它运行可执行文件,然后暂停:
"C:\WINDOWS\system32\cmd.exe" /c ""...\ConsoleApplication1.exe" & pause"
Run Code Online (Sandbox Code Playgroud)
调试时可能不会这样做,因为获取子进程子进程的进程ID有点困难.
要为程序添加类似选项,请使用命令行开关告诉应用程序本身暂停,或使用批处理文件运行它然后暂停,或使用快捷方式cmd.exe /c.
Phi*_*ert 14
那是不可能的.运行控制台应用程序时,Visual Studio会生成按任意键的提示.这不是你的计划的一部分.
唯一的方法是在代码中使用Console.Read()
更新:关于你使用TextPad的说法:我不熟悉TextPad,但是如果TextPad在运行控制台应用程序时与Visual Studio做同样的事情,我也不会感到惊讶.
小智 8
你可以这样做......
static void Main(string[] args)
{
#if DEBUG
Console.Read();
#endif
}
Run Code Online (Sandbox Code Playgroud)
这样,当您将应用程序构建为"发布"时,程序将不会等待控制台输入.
您可以编写一个为您运行exe的批处理脚本,并提示用户按一个键.
批处理脚本看起来像这样:
echo off
YourApp.exe
pause
Run Code Online (Sandbox Code Playgroud)