运行一个C#程序以在mono中启动另一个C#程序

运行一个C#程序以在mono中启动另一个C#程序,c#,.net,linux,ubuntu,mono,C#,.net,Linux,Ubuntu,Mono,我目前正在运行一个用C#编写的服务器软件程序,我正在尝试 在linux上添加对此.net软件的支持。在mono下,几乎所有东西都能按预期工作,但是有一些东西不起作用。例如,成功关闭服务器软件后,另一个用C#编写的外部程序应该会立即弹出,并从文本文件发送心跳数据。在.net环境(如windows 7)中,这可以通过简单的 Process.Start("Heartbeat.exe"); 就这样。它突然出现了 annnnnnd,当服务器软件检测到主机操作系统正在运行mono时,在服务器关闭功能后,我

我目前正在运行一个用C#编写的服务器软件程序,我正在尝试
在linux上添加对此.net软件的支持。在mono下,几乎所有东西都能按预期工作,但是有一些东西不起作用。例如,成功关闭服务器软件后,另一个用C#编写的外部程序应该会立即弹出,并从文本文件发送心跳数据。在.net环境(如windows 7)中,这可以通过简单的

Process.Start("Heartbeat.exe");
就这样。它突然出现了

annnnnnd,当服务器软件检测到主机操作系统正在运行mono时,在服务器关闭功能后,我尝试运行其他代码。上述代码无效。 我试过了,但我可能不知道我在做什么

ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.UseShellExecute = false;
procInfo.FileName = "Heartbeat.exe";
Process.Start(procInfo);  
这也不行。我曾尝试运行一个.sh来运行带有mono参数的.exe,但效率非常低。非常感谢任何帮助和所有帮助。(在你们像大多数人一样大声叫我读mono和ProcessStartInfo API之前,我都读过,但我还是什么都不懂。而且mono API很奇怪。)

编辑:

谢谢Lex Li的回答,但是当使用

Process.Start("mono Heartbeat.exe")
我得到这个错误:

Error when getting information for file '/home/me/Desktop/LCDev/mono Heartbeat.exe': No such file or directory
我假设上面的代码试图运行一个名为“mono Heartbeat.exe”的程序,而不是使用mono打开Heartbeat.exe。

C#应用程序必须在Linux上使用mono启动,因此您应该使用


Process.Start(“mono”,“你的exe的完整路径”)

获取文件“/home/me/Desktop/LCDev/mono Heartbeat.exe”的信息时出错:没有这样的文件或目录刚刚编辑过。忘记了exe的路径应该作为参数传递。啊,当我添加ProcessStartInfo.CreateNoWindow=true时,它起作用了;我得到了这个错误:“xdg open:意外参数'full\u path\u of_your\u exe'”