Наше приложение работает под собственным профилем и привилегиями пользователя, но мы даем ему возможность запускать исполняемый файл, который обновляет его программное обеспечение.
Этот исполняемый файл должен работать с повышенными привилегиями
Я добавил это к манифесту
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Он отлично работает на разных машинах, но на нескольких машинах я обнаружил, что приложение вообще не запускается.
Я пытался просто запустить исполняемый файл с помощью process.start
Process.Start(<path to executable>)
Я также попытался добавить глагол runas
Dim pWS As ProcessStartInfo
pWS = New ProcessStartInfo
pWS.FileName = <path to executable>
pWS.Verb = "runas"
pWS.UseShellExecute = False
Dim oProc As Process
oProc = Process.Start(startInfo:=pWS)
oProc.WaitForExit()
Когда я убедился, что на компьютере пользователя включен UA C, и я дважды - нажмите на исполняемый файл из их Windows Исследуйте, он работает отлично. UA C спрашивает пользователя, хотят ли они, чтобы исполняемый файл вносил изменения, и т. Д. c, и когда он go «Да», он делает именно то, что ему нужно.
Так что же я Мне не хватает, когда я звоню из VB. NET сборки согласно приведенному выше коду?
Я также попытался использовать Shellexecute вместо:
pWS.UseShellExecute = True
тоже не радует