众所周知,使用ClickOne发布程序简单方便,但有个限制就是不能使应用程序用Administrator权限运行。为了两者兼有,可以在启动处加上如下代码:
var wi = WindowsIdentity.GetCurrent();
var wp = new WindowsPrincipal(wi);
bool runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);
if (!runAsAdmin)
{
var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
processInfo.UseShellExecute = true;
processInfo.Verb = "runas";
Process.Start(processInfo); //以Administrator权限重新启动自己
}
else
{
//实际的启动代码
}