当我在C#中使用System.Diagnostics.Process.Start执行它时,我有一个程序崩溃,但如果我执行运行exe的快捷方式或批处理文件,则可以正常工作。是否有任何替代方法在C#中执行程序,或者与快捷方式或批处理文件相比,Process.Start可能无法工作的任何原因?我宁愿不必生成批处理文件或快捷方式文件来运行应用程序。
由于
答案 0 :(得分:4)
我肯定会确保您正确设置“工作目录”。仅仅因为你启动EXE并不意味着它的工作目录将是它所在的文件夹。它可能是运行主应用程序的文件夹,或者如果你从服务运行它可能是 WindowsFolder < / EM> \ SYSTEM32。
确保通过 ProcessStartInfo.WorkingDirectory 属性指定工作目录。如果不这样做,则需要加载的DLL或需要读取的文件可能不在您期望的位置,如果它们与工作目录相关的话。
答案 1 :(得分:2)
我认为理解为什么你的应用程序在这种情况下崩溃而不是过早地解决问题是很重要的。关于Process.Start
几乎没有什么特别之处,使用任何启动过程的方法基本上都会编译成相同的代码。
您能否向我们提供有关其崩溃原因的任何信息?您是否尝试在崩溃时附加调试器以查看发生了什么?