У меня есть следующий код С #, который запускает командную строку:Запуск командной строки с C# не работает
ProcessStartInfo si = new ProcessStartInfo();
si.FileName = @"Lib\my_program.exe";
si.WindowStyle = ProcessWindowStyle.Hidden;
si.UseShellExecute = false;
si.CreateNoWindow = true;
si.Arguments = "my args";
Process p = new Process();
p.StartInfo = si;
p.Start();
Он отлично работает на одном компьютере, но при его запуске на другом компьютере - ничего не происходит.
При попытке запустить его через командную строку на проблемном компьютере - он также отлично работает.
все пути верны, и я запускаю его с правами администратора.
Что может пойти не так? возможно, некоторые переменные среды? или проблемы безопасности компьютера?
Вы уверены, что текущий каталог установлен правильно? Попробуйте создать объект FileInfo на пути exe и спросить, существует ли он. – PMF
Вы уверены, что второй компьютер имеет ту же версию рамки или верхнюю? – Ktt
Вы избегаете неприятностей * всегда * указывая полный путь (например, c: \ foo \ bar \ baz.exe) и * всегда * устанавливая свойство ProcessStartInfo.WorkingDirectory. Используйте свойство Assembly.GetEntryAssembly(). Свойство Location для создания пути. –