2016-12-21 27 views
0

У меня есть .exe-файл, который проверяет системную архитектуру и на основе системной архитектуры вызывает соответствующий msi-файл.C# - Выполнение exe-файла, который дополнительно вызывает файл msi

Я пытаюсь запустить этот исполняемый файл из C# с помощью кода ниже

Process process = new Process(); 
process.StartInfo.FileName = "my.exe"; 
process.StartInfo.Arguments = "/quiet"; 
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
process.StartInfo.WorkingDirectory = "path//to//exe//directory"; 
Console.WriteLine(process.StartInfo.WorkingDirectory); 
process.Start(); 
process.WaitForExit(); 

ехе становится вызван. я вижу журналы приложений и ошибок в журналах нет.

Но msi не запускается и не устанавливается. Когда я пытаюсь запустить один и тот же файл exe вручную, устанавливается msi.

Примечание. Для этого my.exe имеются другие файлы зависимостей, которые помещаются в один каталог.

Почему я не могу установить msi из программы C#, пока я могу сделать это вручную.

Я запускаю VisualStudios в режиме администратора.

ответ

0

Я получил это решение после добавления Thread.Sleep(). перед "process.WaitForExit()"

+0

Хотя это работает, я все еще не могу понять, почему это работает. Я понимаю, что процесс был убит еще до того, как была запущена установка msi. Но было бы здорово, если бы у меня было более подробное выдворение. – user2048204

0

Вам необходимо выполнить .exe (и msi) в качестве администратора.

Для того, чтобы использовать:

process.StartInfo.Verb = "runas" 

Кроме того, попробуйте его удаление тихие аргументы, чтобы увидеть возможные ошибки.

«Мой.exe» устанавливает ваш MSI, если вы его называете, не так ли?

+0

My.exe должен установить MSI. – user2048204

+0

Но я запускаю Visual Studio как администратор – user2048204

+0

Можете ли вы поделиться, как вы устанавливаете msi? Можете ли вы попробовать добавить «l * C: \ mylog.log»? msiexec/i /l * C: \ mylog.log Может быть что-то о пути, а ваш «my.exe» не находит файл msi? – Deitools

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

  • Нет связанных вопросов^_^