2010-03-22 80 views
3

我有一个程序崩溃时,我用System.Diagnostics.Process.Start在C#中执行它,但工作正常,如果我执行快捷方式或批处理文件运行exe。在C#中执行程序是否有其他方法,或者与快捷方式或批处理文件相比,Process.Start可能无法工作的任何原因?我宁愿不必生成批处理文件或快捷方式文件来运行应用程序。C#执行EXE不使用System.Diagnostics.Process.Start

感谢

+4

什么是例外? – Arthur 2010-03-22 17:51:42

+2

你可以显示你崩溃时用来启动它的代码,也许更详细地描述它是如何崩溃的(错误消息等)? – 2010-03-22 17:52:46

回答

2

我想了解为什么您的应用程序在这种情况下崩溃,而不是过早地解决该问题是非常重要的。关于Process.Start几乎没什么特别之处,并且使用任何启动过程的方法将基本上编译到引擎盖下的相同代码。

你能告诉我们为什么它会崩溃吗?你有没有尝试在崩溃时附加一个调试器来查看发生了什么?

4

我一定会考虑确保你正确设置你的“工作目录”。仅仅因为你启动了一个EXE并不意味着它的工作目录就是它所在的文件夹。它可能是主应用程序运行的文件夹,或者如果你使用的是服务,它可能是WindowsFolder \ system32 。

确保您通过ProcessStartInfo.WorkingDirectory属性指定工作目录。如果你不这样做,那么你需要加载的DLL或需要读取的文件可能并不是你期望的那些,如果它们与工作目录相关的话。

相关问题