Я создаю программу автоматического обновления для приложения. Приложение запускается пользователем и работает без прав администратора. Автообновитель запускается с правами администратора и убивает приложение до того, как оно загрузит новые файлы.
Проблема возникает, когда я хочу запустить обновленное приложение после завершения автообновления. Если я использую обычный System.Diagnostics.Process.Start(file), приложение также запускается с правами администратора, и оно должно запускаться под текущим пользователем, чтобы работать, как задумано.
Итак, как сделать так, чтобы автоапдейтер запускал приложение от имени текущего пользователя, а не от администратора?
Я пытался использовать следующее:
var pSI = new ProcessStartInfo() {
UseShellExecute = false,
UserName = Environment.UserName,
FileName = file
};
System.Diagnostics.Process.Start(pSI);
Но это выдает ошибку "Неверное имя пользователя или пароль". Я проверил правильность имени пользователя и понимаю, что пароль, вероятно, недействителен, так как я его не указал. Но это не вариант просить пользователя ввести его / ее пароль, поскольку вся причина для автоматического запуска приложения заключается в том, чтобы упростить пользователю работу.
Есть предложения?