我目前正在开发一个项目,并发现使用Process.Start和shell命令来运行其他现有程序是有问题的。当我单击程序中的按钮以启动其他exe文件时,它会加载程序但不正确,我看到在我的两个外部程序中的这种行为在我的程序运行时无法更新但是在它自己的工作中会发生什么很好,另一个无法正确加载接口,并给我一个错误。
错误告诉我它无法找到它所依赖的资源来运行,所以任何人都可以告诉我它为什么这样做以及一个可能的解决方案,因为iv尝试了我所知道的所有启动代码:Start,Process.Start和shell?
EDIT 我还发现,如果我将我的exe放在与我想要运行的程序相同的文件夹中,它工作正常,但这不适合我的项目,所以任何解决方法?
解决方案: 感谢您提供的所有帮助,我需要设置工作目录,初学者错误:))
Dim filePath As String = "C:\Program Files\Example\Example.exe"
Dim psi As New ProcessStartInfo(filePath)
psi.WorkingDirectory = IO.Path.GetDirectoryName(filePath) Process.Start(psi)
答案 0 :(得分:2)
您必须定义一个WorkingDirectory
var proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = "The Location of the process";
proc.Start("the process");