Saya mencoba untuk menginstal layanan menggunakan InstallUtil.exe tetapi dipanggil melalui Process.Start. Berikut kodenya:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
di mana m_strInstallUtiljalur yang sepenuhnya memenuhi syarat dan exe untuk "InstallUtil.exe" dan strExePathjalur / nama yang sepenuhnya memenuhi syarat untuk layanan saya.
Menjalankan sintaks baris perintah dari command prompt yang ditinggikan berfungsi; lari dari aplikasi saya (menggunakan kode di atas) tidak. Saya berasumsi saya sedang berurusan dengan beberapa masalah peningkatan proses, jadi bagaimana saya menjalankan proses saya dalam keadaan tinggi? Apakah saya perlu melihat ShellExecuteini?
Ini semua pada Windows Vista. Saya menjalankan proses dalam debugger VS2008 yang ditingkatkan menjadi hak istimewa admin.
Saya juga mencoba pengaturan startInfo.Verb = "runas";tetapi sepertinya tidak menyelesaikan masalah.
startInfo.UseShellExecute = true;selainstartInfo.Verb = "runas";itu berfungsi dengan baik untuk saya.