我正在寻找很多方法来获取.NET中的父进程,但只找到了P/Invoke方式.
通过"无需调试启动"(Ctrl+ F5)在Visual Studio中运行控制台应用程序时,控制台在运行结束时保持打开状态
按任意键继续 ...
因此需要激活窗口并按下一个键.有时这不合适.
为什么这 很重要:在我编写json序列化代码的那一刻,我的工作流程如下:
一次又一次地执行此操作,无需调试任何内容,只需修剪序列化并检查输出是否正常.
这是像这样的工作流程,其中"按任何..."行为因为它需要步骤而阻碍
没有答案:
我试图将C#程序的输出重定向到文件.使用"cmd.exe"时,我可以简单地运行它myprogram.exe arg1 arg2 > out.txt,但我想使用Visual Studio 启动选项完成相同的操作.
我创建了一个C#Empty Project并添加了以下代码:
using System;
class Test
{
public static void Main(string[] args)
{
foreach (var arg in args) Console.WriteLine(arg);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在项目设置中编辑了命令行参数:

使用Ctrl + F5运行项目不能按预期工作.我得到控制台中打印的命令行参数,而不是输出文件:
arg1
arg2
>
output.txt
Run Code Online (Sandbox Code Playgroud)
如果我将命令行参数更改为:arg1 arg2 "> output.txt"我得到以下输出:
arg1
arg2
^> output.txt
Run Code Online (Sandbox Code Playgroud)
我注意到output.txt在Output文件夹中创建了一个空文件.
这件事有可能完成,还是我被迫继续使用cmd.exe来启动我的程序?
当我开发一个C#控制台应用程序(它将在服务器上运行)并使用Visual Studio运行它时,我会在程序终止之前收到"按任意键继续"消息.
但是,当我使用CSC手动编译完全相同的C#代码文件时,我的程序没有显示该消息,并在完成其逻辑后立即终止.
有没有人知道如何在不使用VS编译代码的情况下创建相同的功能,并且在没有更改C#代码的情况下添加ReadLine()?
更新:我学习C#时出现的相同消息,我曾经使用带有CSC的TextPad,并且该消息过去没有添加任何Write(Line)/ Read(Line)调用