c# -在可执行文件的不同目录中启动一个进程
本文关键字:启动 进程 一个 可执行文件 | 更新日期: 2023-09-27 18:04:24
我需要启动一个进程,例如在这个路径中:
c:'A'ApplicationToBeLaunched.exe
我希望这个进程运行在它们的可执行文件的不同路径上。另一个文件夹将包含applicationtolaunched .exe应用程序的所有配置文件。例如,路径可以是:
c:'B'
我正在尝试用这个c#代码做这个:
System.Diagnostics.Process prProcess = new System.Diagnostics.Process();
prProcess.StartInfo.FileName = "c:''A''ApplicationToBeLaunched.exe";
prProcess.StartInfo.UserName = "";
prProcess.StartInfo.UseShellExecute = false;
prProcess.StartInfo.WorkingDirectory = "c:''B''";
prProcess.Start();
但是进程总是在应用程序目录(c:'A')
中执行。我还尝试将属性UseShellExecute
设置为true。
我做错了什么?有人能帮我吗?
编辑:经过一些测试,我检查了这个问题是在应用程序启动。使用工作目录的进程运行正常
我做了一个小测试,在Main方法中创建了一个小程序:
System.Diagnostics.Process prProcess = new System.Diagnostics.Process();
prProcess.StartInfo.FileName = @"C:'src'Test'ObjectTest'ObjectTest'bin'Release'ObjectTest.exe";
prProcess.StartInfo.UserName = "";
prProcess.StartInfo.UseShellExecute = false;
prProcess.StartInfo.WorkingDirectory = @"c:'temp'";
prProcess.Start();
在ObjectTest.exe
Console.WriteLine(Directory.GetCurrentDirectory());
输出结果:
c:'temp'
所以我认为你的程序有其他问题,而不是工作目录的问题。
我不知道为什么WorkingDirectory
不工作,但我自己在过去遇到过这种情况。
尝试在启动新进程之前更改当前工作目录:
Directory.SetCurrentDirectory("c:''B''");