在C#中运行外部程序(跨平台)

在C#中运行外部程序(跨平台),c#,.net,mono,cross-platform,system.diagnostics,C#,.net,Mono,Cross Platform,System.diagnostics,我已经看过System.Diagnostics了,但我似乎不知道该怎么做 用户指定要运行的程序。在Windows系统上,这类似于“C://path/to/someProgram.exe”,但在linux系统上,类似于“/usr/bin/wine start/path/to/someProgram.exe”的内容将被传递 我的程序将附加参数传递给指定的参数并运行它 在windows和linux系统上运行时,我能做些什么?在linux上,您需要确保PATH环境变量中包含wine的位置,并且我假设您需

我已经看过System.Diagnostics了,但我似乎不知道该怎么做

用户指定要运行的程序。在Windows系统上,这类似于“C://path/to/someProgram.exe”,但在linux系统上,类似于“/usr/bin/wine start/path/to/someProgram.exe”的内容将被传递

我的程序将附加参数传递给指定的参数并运行它


在windows和linux系统上运行时,我能做些什么?

在linux上,您需要确保PATH环境变量中包含
wine
的位置,并且我假设您需要为
wine
提供someProgram.exe的完整路径。您收到了什么错误消息?@adv12您的路径是正确的,我已将其添加到主帖子中。问题在于,使用system.diagnostics运行程序时,必须单独指定程序和参数。在windows中,可执行文件是“someProgram.exe”,没有参数,但在linux示例中,可执行文件是“wine”,参数是“start/path/to/someProgram.exe”。我见过将整个命令作为参数传递给“sh”的示例,但这仅适用于linux系统。您可以检查Environment.OSVersion.Platform以确定是Windows还是linux,并将参数分支