2013-12-11 1 views
1

Я запускаю скрипт C# в SSIS. В этом скрипте я пытаюсь вызвать winSCP.com, который находится в следующем каталоге: «C: \ Program Files (86) \ WinSCP \"Система не может найти файл, указанный при попытке вызвать исполняемый файл в C#

Но когда я пытаюсь запустить код, он всегда сбой немедленно.
Вот мой код. Что я делаю не так?

// 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(); 

The Error: "System.ComponentModel.Win32Exception: The system cannot find the file specified at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)"

ответ

1

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

+2

Хотя это может быть правильный ответ, просьба дать объяснение, почему это решит проблему. – billinkc

+0

Спасибо. Я закомментировал строку StartInfo.WorkingDirectory и добавил полный путь, как показано в вашем ответе, который сработал. – Hotelsinger

0

Когда вы не используете оболочку выполнить. Вы должны использовать полный путь к исполняемому файлу. Поскольку в этом случае рабочий каталог не является базовым каталогом для относительного пути. Но только рабочая папка для исполняемого файла.

Смежные вопросы