Tôi đang cố gắng cài đặt một dịch vụ bằng InstallUtil.exe nhưng được gọi qua Process.Start
. Đây là mã:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
nơi m_strInstallUtil
là đường dẫn đầy đủ điều kiện và exe để "InstallUtil.exe" và strExePath
là đầy đủ đường dẫn / tên để dịch vụ của tôi.
Chạy cú pháp dòng lệnh từ một dấu nhắc lệnh nâng cao hoạt động; chạy từ ứng dụng của tôi (sử dụng mã trên) thì không. Tôi giả sử tôi đang xử lý một số vấn đề về độ cao quá trình, vậy làm cách nào để chạy quy trình của tôi ở trạng thái nâng cao? Tôi có cần phải xem xét ShellExecute
điều này?
Đây là tất cả trên Windows Vista. Tôi đang chạy quy trình trong trình gỡ lỗi VS2008 được nâng lên thành đặc quyền quản trị viên.
Tôi cũng đã thử cài đặt startInfo.Verb = "runas";
nhưng dường như không giải quyết được vấn đề.
startInfo.UseShellExecute = true;
vào,startInfo.Verb = "runas";
nó hoạt động tốt với tôi.