【问题标题】:System cannot find the file specified when I try to call an executable file in C#当我尝试在 C# 中调用可执行文件时,系统找不到指定的文件
【发布时间】:2013-12-30 01:44:22
【问题描述】:

我正在 SSIS 中运行 C# 脚本。 在该脚本中,我试图调用位于以下目录中的 winSCP.com:“C:\Program Files (86)\WinSCP\”

但是当我尝试运行代码时,它总是立即失败。
这是我的代码。我做错了什么?

// Run hidden WinSCP process

Process winscp = new Process();
winscp.StartInfo.WorkingDirectory = "C:\\Program Files (x86)\\WinSCP\\";
winscp.StartInfo.FileName = "winSCP.com";
winscp.StartInfo.UseShellExecute = false;
winscp.StartInfo.RedirectStandardInput = true;
winscp.StartInfo.RedirectStandardOutput = true;
winscp.StartInfo.CreateNoWindow = true;
winscp.Start();

错误:“System.ComponentModel.Win32Exception:系统找不到在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 指定的文件”

【问题讨论】:

    标签: c# ssis winscp


    【解决方案1】:

    winscp.StartInfo.FileName = "C:\\Program Files (x86)\\WinSCP\\WinSCP.com";

    【讨论】:

    • 虽然这可能是正确的答案,但请解释为什么这会解决问题
    • 谢谢。我注释掉了 StartInfo.WorkingDirectory 行并添加了完整路径,如您的答案所示。
    【解决方案2】:

    当你不使用 shell 时执行。您必须使用已执行文件的完整路径。因为在这种情况下,工作目录不是相对路径的基本目录。但只是执行文件的工作文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多