如何以跨平台的方式启动一个.NET .exe文件?

4
我有一个.NET应用程序,需要从另一个.NET应用程序中启动它自己的进程。如果我只关心它在Windows上运行,那很容易,我可以使用System.Diagnostics.Process.Start,指定我的exe路径,然后就可以了。
但问题是,这是为MonoDevelop插件而设计的,因此我需要以跨平台的方式进行操作,在Mac和Linux上,您不能指望操作系统知道如何处理.NET程序集而不需要一些帮助(例如调用mono myapp.exe)。
由于这是为MonoDevelop插件而设计的,因此可以接受利用Mono或MonoDevelop库的答案。
2个回答

6
如果您在Mono上使用Process.Start运行.NET可执行文件,它将自动使用Mono运行。它不会直接传递给操作系统。

即使在Windows上也是这样吗?从在Mono 2.10.9上运行的应用程序中运行Process.Start似乎会使用.NET启动新进程。 - scott
你设置了ShellExecute=false吗? - Mikayla Hutchinson
是的,UseShellExecute = false。 - scott
这可能只是在!windows上,不确定。 - Mikayla Hutchinson

4
您可以使用MonoDevelop.Core.Runtime.ProcessService.StartProcess()方法来启动进程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接