从Visual Studio运行控制台应用程序时,避免"按任意键继续"

cit*_*kid 22 console-application visual-studio

通过"无需调试启动"(Ctrl+ F5)在Visual Studio中运行控制台应用程序时,控制台在运行结束时保持打开状态

按任意键继续 ...

因此需要激活窗口并按下一个键.有时这不合适.

为什么这重要:在我编写json序列化代码的那一刻,我的工作流程如下:

  • 适应c#代码
  • 运行一个写文件out.json的控制台应用程序
  • 使用json查看器在浏览器中查看out.json

一次又一次地执行此操作,无需调试任何内容,只需修剪序列化并检查输出是否正常.

这是像这样的工作流程,其中"按任何..."行为因为它需要步骤而阻碍

  • 激活控制台窗口
  • 按键.

没有答案:

  • 在VS外部在单独的控制台中启动应用程序不是一个答案.
  • 说,你不需要这个.

Cod*_*ray 15

我很确定你不能影响或改变这种行为.

正如您所提到的,它与您的应用程序本身无关,因为当您双击EXE时它不会执行此操作.只有在没有附加调试器的Visual Studio中运行应用程序时,才会看到此效果.

据推测,当您调用Ctrl+时F5,Visual Studio以特定方式运行您的应用程序,导致控制台窗口保持打开状态.我可以想到它可能采取的两种方式:

%COMSPEC% /k "C:\Path\To\YourApplication.exe"
Run Code Online (Sandbox Code Playgroud)

要么

%COMSPEC% /c ""C:\Path\To\YourApplication.exe" & pause"
Run Code Online (Sandbox Code Playgroud)

使用其中任何一个,您看到的暂停行为都会直接进入用于启动应用程序的命令,因此在您的应用程序外部.因此,除非您有权访问Visual Studio源代码,否则您不会更改它.exit从您的应用程序调用功能将不起任何作用,因为您的应用程序已在消息出现时退出.

当然,除了好奇心问题之外,我不明白为什么它真的很重要.当您使用附加的调试器启动应用程序时,这不会发生,这是您从IDE启动应用程序时99%的时间.既然你不与你的应用程序一起装运的Visual Studio,用户将要启动VS.之外的应用


为了回应您的问题所做的更新,最好的解决方案是更改您的应用程序,使其不是控制台应用程序.此行为不会影响标准Windows应用程序; 当他们关闭时,他们会关闭.

如果您在控制台窗口上不需要任何输出,那么这很简单:只需更改项目属性中的"应用程序类型"即可.Windows窗体应用程序可以正常工作.如果您不显示窗口(也称为窗体),则不会自动创建窗口.这是常规Windows应用程序和控制台应用程序之间的区别,它总是创建一个控制台窗口,无论您是否需要.

如果确实需要在控制台窗口上显示输出,则有几个选项:

  1. 使用ListBox或ListView控件创建和使用简单表单.通常输出到控制台的每一行,您作为新项添加到列表控件.如果您没有使用控制台的任何"高级"功能,这很有效.
  2. P /调用并调用该AllocConsole函数以创建Windows应用程序可以使用的控制台.你不需要一个表格.

  • @CodyGray"我不明白为什么它真的很重要"因为有时候你想要一个快速的编译/执行周期而不需要附加调试器(这会减慢应用程序的启动速度).例如,我正在测试一个输出文档文件的应用程序.文档内容在外部应用程序中实时反映.我正在通过代码进行视觉调整,我真的只想调整,调整,运行,调整,运行.我不想启动调试器,我不想每次都关闭控制台窗口. (5认同)
  • 将输出类型更改为“Windows 应用程序”会导致我正在寻找的行为,很酷,谢谢。 (2认同)

小智 9

我找到了一个解决方案,如果您使用python(我无法测试其他任何东西).你需要去

工具 - >选项 - > Python工具 - >调试

取消选中Wait for input when process exits normally.

我希望你能以某种方式应用于你的问题.

  • Python,真的吗? (5认同)

Sam*_*ens 5

2020 更新:微软已经倾听了。

在此输入图像描述

它还会以“启动而不调试”模式关闭控制台;)

该设置有点隐蔽,但有效:

在此输入图像描述