在托管代码中启动另一个EXE

时间:2009-04-10 12:13:35

标签: vb.net visual-studio-2008 .net-3.5

是否可以在托管代码中启动另一个EXE?在这个时候,我所能做的只是使用:

System.Diagnostics.Process.Start(exeName)

是否有另一种方法可以在同一个项目中调用另一个EXE?

谢谢! JFV

4 个答案:

答案 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