是否可以在托管代码中启动另一个EXE?在这个时候,我所能做的只是使用:
System.Diagnostics.Process.Start(exeName)
是否有另一种方法可以在同一个项目中调用另一个EXE?
谢谢! JFV
答案 0 :(得分:8)
Process process = new Process();
process.StartInfo.FileName = "c:\test.exe";
process.StartInfo.Arguments = "/e /s";
process.Start();
通过这种方式,您可以为您的流程获得许多选项,例如process.WaitForExit(),因此您可能无法以异步方式运行您的流程等。
答案 1 :(得分:4)
如果管理,可以使用Assembly.ExecuteAssembly。这将执行当前流程中的主要入口点,而不是启动新流程。
答案 2 :(得分:1)
使用相对路径,它应该可以工作。
答案 3 :(得分:0)
相对路径使用CurrentDirectory,用户可以在启动应用程序时轻松更改此设置,并且可以在执行期间更改。我建议你使用一些你可以肯定的东西:
有许多不同的方法来获取可执行文件的路径:
AppDomain.CurrentDomain.BaseDirectory
Assembly.GetExecutingAssembly().Location