【问题标题】:C#- Executing Exe without using System.Diagnostics.Process.StartC#- 在不使用 System.Diagnostics.Process.Start 的情况下执行 Exe
【发布时间】:2014-07-08 19:58:51
【问题描述】:

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

谢谢

【问题讨论】:

  • 您能否展示在它崩溃时用来启动它的代码,或者更详细地描述它是如何崩溃的(错误消息等)?

标签: c#


【解决方案1】:

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

确保通过 ProcessStartInfo.WorkingDirectory 属性指定工作目录。否则,您需要加载的 DLL 或需要读取的文件可能不在您预期的位置,如果它们与工作目录相关。

【讨论】:

    【解决方案2】:

    我认为了解为什么您的应用程序在这种情况下崩溃而不是过早地解决问题很重要。 Process.Start 几乎没有什么特别之处,使用任何启动该过程的方法基本上都会在后台编译成相同的代码。

    您能给我们提供有关它为什么崩溃的任何信息吗?您是否尝试在崩溃时附加调试器以查看发生了什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2019-04-02
      相关资源
      最近更新 更多