运行C#程序以单声道启动另一个C#程序

时间:2013-09-15 03:04:35

标签: c# .net linux ubuntu mono

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

可以很简单
Process.Start("Heartbeat.exe");

就是这样。它弹出。

Annnnnnnnd,当服务器软件检测到主机操作系统正在运行单声道时,在服务器关闭功能时,我试图运行其他代码。上面的代码没有效果。 我试过这个,但我可能不知道我在做什么。

ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.UseShellExecute = false;
procInfo.FileName = "Heartbeat.exe";
Process.Start(procInfo);  

这也不起作用。我试图运行一个.sh来运行.exe以及单声道args,但效率非常低。非常感谢任何帮助和所有帮助。 (在你们大吼大叫我和大多数人一起读单声道和ProcessStartInfo API之前,我都读过它们,我仍然一无所知。单声道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”的程序,而不是用单声道打开Heartbeat.exe。

1 个答案:

答案 0 :(得分:10)

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

Process.Start("mono", "full_path_of_your_exe");