完整代码在最后,不想看过程的可以直接跳转使用
踩坑记录:
C#要在程序中打开另外一个exe,很多人就会用到Process
Process process = new();
process.StartInfo.FileName = "你的exe文件路径";
process.Start();
一顿操作,成功启动了,但是有个坑点:
如果没有指定它的 WorkingDirectory,那么他就会默认以启动他的程序的根目录作为WorkingDirectory
这样的话就会加入启动他的程序的的进程树中,这样会导致杀原来进程的进程树会把这个exe同时干掉,或者exe中某些依赖相对路径的机制失效,所以如果exe不大,你可以将它放在启动他的程序的根目录下某个位置:
process.StartInfo.WorkingDirectory = Path.Combine(Directory.GetCurrentDirectory(), "你放exe的地方");
这样启动的程序就不会加入原来进程的进程树,而且也可以很好的解决exe里面的相对路径问题。
完整代码:
Process process = new();
process.StartInfo.FileName = "你的exe文件路径";
process.StartInfo.WorkingDirectory = Path.Combine(Directory.GetCurrentDirectory(), "你放exe的地方");
process.Start();
*Directory.GetCurrentDirectory()为获得当前运行程序的根目录*