进程如何?Start与Start >运行
本文关键字:Start 运行 进程 | 更新日期: 2023-09-27 18:04:37
如果我点击开始>运行,输入
C: '文件夹' Program.exe = 1
My program works.
如果我创建一个快捷方式到。exe并编辑属性将A=1
附加到目标路径,它也可以工作。
但是如果我试着运行
var p = new Process();
p.StartInfo.FileName = @"C:'folder'Program.exe";
p.StartInfo.Arguments = "A=1"
p.Start();
或
Process.Start(@"C:'folder'Program.exe, "A=1");
不。
这两个调用之间的区别是什么,我如何改变我的代码调用,使它运行完全相同的方式,当我输入值到Start> Run?
重新发布评论作为答案(并重新措辞):
不像explorer shell的Start->Run,它会自动将当前工作目录设置为目标可执行文件所在的文件夹,. net的Process.Start
不会这样做。通常情况下,可执行文件试图加载相对于当前工作文件夹的资源,并期望它与可执行文件所在的文件夹相同(例如加载配置文件,dll和库等),这会导致崩溃或其他失败。
使用StartInfo.WorkingDirectory
指定工作文件夹到可执行文件所在的位置,10次中有9次,就是这样!
是啊,我已经不止一次踩到这个耙子了…