WaitForExit() активируется на UAC или Security Warning
Я довольно новичок в C# и на этом форуме в целом, но, насколько я понимаю, я не видел ни одного вопроса, подобного моему, который решит мою проблему.
Я вызываю метод Process.WaitForExit()
дождаться окончания установки установочного файла. Тем не менее, метод, кажется, рассматривает UAC как "процесс" и активируется после того, как я нажимаю OK на UAC. Есть ли лучший способ дождаться завершения процесса установки, прежде чем код продолжится? Или я делаю это неправильно? Отключение UAC вручную (если это возможно) бесполезно, если только это не сделано программно.
Вот часть кода:
Изменить: правильное вызов процесса
Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");
Изменить 2: это поможет, если я скажу, что я устанавливаю MySQL Server 5.6? Кажется, что, кроме предупреждения о безопасности, он всплывает и закрывает некоторые окна, прежде чем он тоже запустится. С уважением.
2 ответа
Код не верный. Вы создаете экземпляр класса Process, но затем вызываете статический метод Process.Start, который создает новый экземпляр Process.
Ваш код должен выглядеть так:
Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");
Запустите ваше приложение с повышенными привилегиями:
<requestedExecutionLevel level="requireAdministrator">
Также рассмотрите ответ BasyStallion и правильно запустите netInstall