进程如何?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?

进程如何?Start与Start >运行

重新发布评论作为答案(并重新措辞):

不像explorer shell的Start->Run,它会自动将当前工作目录设置为目标可执行文件所在的文件夹,. net的Process.Start不会这样做。通常情况下,可执行文件试图加载相对于当前工作文件夹的资源,并期望它与可执行文件所在的文件夹相同(例如加载配置文件,dll和库等),这会导致崩溃或其他失败。

使用StartInfo.WorkingDirectory指定工作文件夹到可执行文件所在的位置,10次中有9次,就是这样!

是啊,我已经不止一次踩到这个耙子了…