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_strInstallUtil
jalur yang sepenuhnya memenuhi syarat dan exe untuk "InstallUtil.exe" dan strExePath
jalur / 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 ShellExecute
ini?
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.