将进程升级为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行正常。但我的下面的代码没有。

Process setupws = new Process();
setupws.StartInfo.FileName = @"setupws.exe";
setupws.StartInfo.Verb = "runas";
setupws.StartInfo.UseShellExecute = true;
setupws.Start();
setupws.WaitForExit();

setupws.exe文件运行正常,而不是管理员。

我做错了什么?

由于

PS。我还在app.manifest文件中使用了highestAvailable和requireAdministrator

有帮助吗?

解决方案

您需要在清单中将安装程序标记为requiredExecutionLevel level = requireAdministrator,请参阅创建和嵌入应用程序清单(UAC)

PS。 requireAdministrator应该在setupws.exe的清单中。

其他提示

您是否以管理员身份运行了应用并尝试过这种方式?你可以这样做:

using System.Security.Permissions;

var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top