【问题标题】:Unable to run application无法运行应用程序
【发布时间】:2014-06-09 08:48:30
【问题描述】:

我正在测试一些启动进程的代码,调用应用程序的 .exe 文件。

以编程方式打开它时,我收到以下错误:

当我尝试通过命令提示符控制台加载它时,如果我先cd 到父目录,然后调用.exe,它工作正常。因此,我怀疑这是由于父目录造成的。

这是我的代码:

Process process = new Process();
process.StartInfo.WorkingDirectory = "C:\\Test\\";
process.StartInfo.FileName = "Test.EXE";
process.Start();

我似乎在设置父目录 - 我还能做什么?

【问题讨论】:

  • 如果一个 Exe 加载正确,那么您打开的 exe 可能会导致此消息。

标签: c# .net winforms file process


【解决方案1】:

工作目录不是可执行文件所在的目录。这是可执行文件认为其当前目录的目录。

例如。所有控制台命令都驻留在 Windows 目录下的某个位置,但它们的工作目录是命令行中的当前目录。

您的代码使用可执行文件的相对路径名,这意味着 Windows 将在您的父应用程序的当前(工作)目录中查找 Test.exe

要解决此问题,只需将完整路径传递给 StartInfo.FileName 中的可执行文件。

【讨论】:

  • 它实际上确实加载了应用程序。所以它找到了.exe,加载它,加载屏幕后显示找不到磁盘的错误消息。我也尝试在文件名中添加完整路径,但同样的事情发生了。
  • 那么问题出在“Test.exe”中。您需要发布相关代码和错误消息。添加日志并尝试调试 Test.exe 以查看实际崩溃的原因以及原因
【解决方案2】:

我刚刚测试了您在此处发布的确切代码,它在这里与我工作得很好:

private void button1_Click(object sender, EventArgs e)
{
    Process myProc = new Process();
    myProc.StartInfo.WorkingDirectory = "C:\\";
    myProc.StartInfo.FileName = "Chat APP.exe";
    myProc.Start();
}

因此请考虑检查您的系统、隐私设置、权限……等等。

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2014-04-26
    • 2017-01-12
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多