Visual studio 避免";按任意键继续“;从Visual Studio运行控制台应用程序时
在Visual Studio中通过“启动而不调试”(Ctrl+F5)运行控制台应用程序时,控制台在运行结束时保持打开状态,要求 按任意键继续 因此需要激活窗口并按一个键。有时这是不合适的 为什么这很重要: 就在我编写json序列化代码的那一刻,我的工作流程如下:Visual studio 避免";按任意键继续“;从Visual Studio运行控制台应用程序时,visual-studio,console-application,Visual Studio,Console Application,在Visual Studio中通过“启动而不调试”(Ctrl+F5)运行控制台应用程序时,控制台在运行结束时保持打开状态,要求 按任意键继续 因此需要激活窗口并按一个键。有时这是不合适的 为什么这很重要: 就在我编写json序列化代码的那一刻,我的工作流程如下: 调整c#代码 运行写入文件out.json的控制台应用程序 使用json查看器在浏览器中查看out.json 反复这样做,不需要调试任何东西,只需修剪序列化并检查输出是否良好 正是这样的工作流,“按任意…”行为会阻碍,因为它需要步骤
- 调整c#代码
- 运行写入文件out.json的控制台应用程序
- 使用json查看器在浏览器中查看out.json
- 激活控制台窗口
- 按键
- 在VS之外的单独控制台中启动应用程序不是一个答案
- 说,你不需要这个
%COMSPEC% /k "C:\Path\To\YourApplication.exe"
或
使用这两种方法中的任何一种,您看到的暂停行为都会被直接烘焙到用于启动应用程序的命令中,因此是应用程序的外部行为。因此,除非您有权访问VisualStudio源代码,否则您不会更改它。从应用程序中调用退出
功能不会产生任何效果,因为在消息出现时,应用程序已退出
当然,除了好奇之外,我不明白为什么这真的很重要。当您在启动应用程序时附加了调试器时,不会发生这种情况,当您从IDE启动应用程序时,99%的时间都是这样做的。由于你的应用程序没有附带Visual Studio,你的用户将在VS之外启动应用程序
对于您的问题所做的更新,最好的解决方案是更改您的应用程序,使其不是控制台应用程序。此行为不影响标准Windows应用程序;当它们关闭时,它们就永远关闭了 如果您不需要控制台窗口上的任何输出,那么这是非常简单的:只是。Windows窗体应用程序可以正常工作。如果不显示窗口(也称为窗体),则不会自动创建窗口。这就是普通Windows应用程序和控制台应用程序之间的区别,无论您是否需要控制台窗口,控制台应用程序总是创建控制台窗口 如果确实需要在console窗口上显示输出,则有两个选项:
我找到了一个在使用python时可以使用的解决方案(我无法测试其他任何东西)。 你需要去 工具->选项->Python工具->调试 当进程正常退出时,取消选中“等待输入”
我希望您能以某种方式将此应用于您的问题。至少在Visual Studio 2010中,键入
Console.ReadKey(true);
删除vs2017中的“按任意键继续…”您必须取消选中vs选项下的python环境设置:
德语:Auf Eingabe warten,wenn der Prozess normal beendet wird2020年更新:微软已经听过了 它还以“启动而不调试”模式关闭控制台;) 设置有点隐蔽,但可以工作:
根据VS2019文件: 调试停止时自动关闭控制台:告诉Visual Studio在调试会话结束时关闭控制台
它可以工作,但前提是您必须确保项目启动时调试器处于打开状态。这听起来很简单,但我一开始尝试了一个解决方案,它有两个项目,一个是控制台,一个是复制文件以在我的应用程序中使用,另一个是运行实际的应用程序。我将Console one设置为启动而不进行调试,因为我不需要对它进行调试,但在它运行后,这并没有关闭它。只有在将其设置为“启动”(带调试)时,此选项才起作用。首先必须启动VS这样的大型程序,而只是启动您的控制台应用程序,没有什么好处。通过在桌面上创建程序的快捷方式来避免此消息。是否可以在每次生成后自动运行应用程序?也就是说,将“$(TargetPath)$”设置为编译后命令行。thx reima,“$(TargetPath)”实际上是一个很酷的想法;-)我已经有一段时间没有编写控制台应用程序了,但将其更改为发布模式会有任何影响吗?@brad:将输出类型更改为“Windows应用程序”不会导致我所寻找的行为,很酷,谢谢。@CodyGray“我不明白为什么它真的很重要”因为有时您需要一个快速的编译/执行周期,而无需附加调试器(这会减慢应用程序的启动)。例如,我正在测试一个输出文档文件的应用程序。文档内容在外部应用程序中实时反映。我正在通过代码进行视觉调整,我真的只想调整,调整,运行,调整,运行。我不想启动调试器,也不想取消调试器
Console.ReadKey(true);