Код С# для запуска моего файла installer.exe в фоновом режиме без вывода сообщений

У меня есть этот код С#:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = "–s –v –qn";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = desktopPath + "\\" + "MyInstaller_7.1.51.14.exe";
Process.Start(psi);

Первая строка просто захватывает путь к моему рабочему столу, а остальные пытаются запустить исполняемый файл установщика в автоматическом режиме. Под тихим режимом я подразумеваю работу в фоновом режиме, без мастера установки или какого-либо пользовательского интерфейса во время установки. Аргументы –s –v –qn нужны для того, чтобы установка выполнялась в автоматическом режиме.

Проблема в том, что когда я запускаю команду, эквивалентную приведенной выше, в командной строке, а именно:

C:\Users\ME\Desktop>MyInstaller_7.1.51.14.exe -s -v -qn

Установщик работает как надо, в тихом режиме.

К сожалению, проблема в том, что попытка сделать то же самое на C# с приведенным выше кодом НЕ приводит к запуску установщика в автоматическом режиме. Мастер установки ПОЯВЛЯЕТСЯ, что является ПЛОХИМ по назначению.

Я думаю, может быть, мне нужно запустить это как службу через С# или под идентификатором 0 пользователей. Или с ключом -i. Я не совсем уверен. Кто-нибудь может помочь??

Просто для пояснения, мой вопрос: как мне написать код C # для запуска моего файла installer.exe в автоматическом режиме, в фоновом режиме, без видимого пользовательского интерфейса?

Пожалуйста помоги.


person Zolt    schedule 17.12.2013    source источник
comment
Какой продукт вы использовали для создания установщика? Не то, чтобы это имело значение, но это может помочь кому-то воспроизвести это.   -  person John Koerner    schedule 18.12.2013
comment
Вы думали создать временный BAT-файл с этой командой в нем C:\Users\...\Temp\MyInstaller_7.1.51.14.exe -s -v -qn и запустить его?   -  person T.S.    schedule 18.12.2013


Ответы (1)


Это правильный ответ:

ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = "/s /v /qn /min";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = newRenamedFile;
psi.UseShellExecute = false;
Process.Start(psi);

Проблема заключалась в том, что в переключателях отсутствовала косая черта.

person Zolt    schedule 18.12.2013