我希望你能明白我的问题,不知道我是否能用英语正确描述它,但我会尝试:)
情况:
- 文件夹结构:MainFolder/Sub1/Sub2
- 2个exe文件:MainFolder/MainProg.exe和/Sub2/SecondProg.exe
- MainProg.exe 不是我提供的,我在 /Sub1 中编写了一个 .cs 文件,类似于插件。 (我认为 MainProg.exe 的工作原理类似于编译器,因为它有一个日志窗口,我可以在其中看到 .cs 文件中的错误。我认为作者在某处提到了 JIT 编译器?!)
- 启动 MainProg.exe -> 单击按钮 -> 启动 SecondProg.exe
- SecondProg.exe 从 xml 文件读取值
- 两者都是.NET 4.5
Problem:
- 我想要将 xml 文件放在 /Sub2 中
- 如果我这样做并以正常方式启动 SecondProg.exe,双击它,一切正常
- 如果我尝试通过 MainProg.exe 中的按钮启动 SecondProg.exe,我会从 Windows 中收到“SecondProg 不再工作”。
- 如果我将 xml 文件复制到 MainFolder,它的工作..
所以,我还在学习C#,但是工作目录可能有问题吗?我很困惑,因为 MainProg.exe 与我的 xml 文件无关,它甚至不知道它在那里,我使用它的唯一一点是在将值加载到 SecondProg.exe 时...
在我的 .cs 文件中,我通过以下方式启动 SecondProg
public override void Button()
{
Process.Start("Sub1\\Sub2\\SecondProg.exe");
}
所以它就像,MainProg 有按钮,在我的 .cs 文件中我告诉他 onClick 的内容。
好吧..如果您不使用您的母语,则很难描述,但我希望您明白我的意思;)
SecondProg.exe 显然会在其工作目录中查找该文件,如果找不到它就会失败。因此,您必须设置新进程的工作目录。为此,请创建一个ProcessStartInfo
对象,设置FileName
到 EXE 文件的路径和WorkingDirectory
到包含该 EXE 的文件夹的路径。然后,当您调用时将该对象作为参数传递Process.Start
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)