Мы создали надстройку для Excel, которая должна запускать исполняемый файл с помощью Process.Start (). Это необходимо, потому что исполняемый файл использует 32-битную библиотеку, но мы должны иметь возможность запускать надстройку в 64-битном Excel. Вывод перенаправляется для получения результата от вызова.
Это работало на сотнях установок в течение многих лет. Теперь при новой установке на конкретном c клиенте мы получаем Win32Exception: доступ запрещен для Process.Start ().
Вот код, о котором идет речь:
ProcessStartInfo processStartInfo = new ProcessStartInfo(path);
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
Process process = new Process();
process.StartInfo = processStartInfo;
bool processStarted = process.Start();
Запуск исполняемого файла двойным щелчком по нему в проводнике или запуск из командной строки работает без ошибок. У пользователя есть разрешение на выполнение.
Я прочитал в { ссылка }, что это может быть вызвано RedirectStandardOuput и что у пользователя должно быть разрешение на создание канала, но я Не удалось найти какую-либо информацию о том, как это разрешение выдается или отнимается.
Спасибо за помощь.