将进程升级为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行正常。但我的下面的代码没有。
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
答案 0 :(得分:1)
您需要在清单中将安装程序标记为requiredExecutionLevel level = requireAdministrator,请参阅Create and Embed an Application Manifest (UAC)。
PS。 requireAdministrator应该在setupws.exe的清单中。
答案 1 :(得分:1)
您是否以管理员身份运行了应用并尝试过这种方式?你可以这样做:
using System.Security.Permissions;
var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);