以编程方式运行 .net 控制台应用程序

Posted

技术标签:

【中文标题】以编程方式运行 .net 控制台应用程序【英文标题】:running .net console applications programmatically 【发布时间】:2012-04-03 08:37:36 【问题描述】:

我有一个用 .net 编写的 .exe 程序(控制台应用程序)。

    我需要执行它 提供输入 以字符串形式或最好以流形式获取输出。

目前我正在使用System.Diagnostics 命名空间和Process 类。 但是为此目的使用 Diagnostic 命名空间似乎没问题。

有什么方法可以让我更有效地做同样的事情吗? 就像使用反射找到Main() 方法然后调用它。

【问题讨论】:

【参考方案1】:

Process 类是做你想做的事的正确工具。不要介意 Diagnostic 命名空间的名称 - 只需使用 Process 类即可。

【讨论】:

谢谢。我还需要在单独的应用程序域中运行此过程。可以使用这个命名空间来完成吗? 第一:忘记命名空间!然后,请阅读本文以了解命名空间是什么以及为什么它对您完全不重要:msdn.microsoft.com/en-us/library/… ***.com/questions/9991735/….. 你可以帮我解决我刚刚发布的第二个问题.. 阅读链接。谢谢【参考方案2】:

完全没问题。 System.Diagnostics 只是一个命名空间。

如果需要更多信息,您可以navigate to this project 获取动力并查看如何以语法方式处理流程或来自VM found in here 的此 sn-p

                var startInfo = new ProcessStartInfo(FilePath)
                
                    WorkingDirectory = RootFolderPath,
                    Arguments = StartingArguments,
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                    CreateNoWindow = true
                ;
                ConsoleProcess = new Process StartInfo = startInfo;

                ConsoleProcess.Start();

【讨论】:

以上是关于以编程方式运行 .net 控制台应用程序的主要内容,如果未能解决你的问题,请参考以下文章

可以以编程方式对 jar 文件(如 .net 程序集)进行版本控制吗?

以编程方式配置 log4net,但额外的日志记录到控制台

如何使用 MDbg 以编程方式枚举正在运行的 .NET 进程中的类型?

无法在运行时以编程方式影响闪烁控制

在 .net 中以编程方式解压缩文件

以编程方式控制 xml 元素的顺序