我们的C#应用程序使用ClickOnce进行部署。尽管应用程序在某些时候需要管理员权限,但一切都像魅力一样。 ClickOnce似乎不支持提升权利的要求。 我们尝试将级别设置为"管理员"在应用程序的清单文件中,并在启动后使用" runas"重新启动应用程序。动词但两种方法都不适合我们的情况,因为用户应该不强制以管理员的方式手动运行应用程序(弹出的UAC对话框要求获得提升权限)。 这有什么解决方法吗?
在localhost上启动WebApp需要提升权限。
修改 我们的代码以管理员权限重新启动:
try
{
this.webApp = WebApp.Start(url: baseAddress, startup: Startup);
} catch (Exception e)
{
Console.WriteLine(e);
MessageBoxButtons buttons = MessageBoxButtons.RetryCancel;
DialogResult result = MessageBox.Show("Dummy app could not start a Web Server on Localhost.\nPlease make sure that no other instance of Dummy app is currently runnning and try again.", "Dummy app has encountered an error", buttons);
if (result == DialogResult.Retry) {
var startInfo = new ProcessStartInfo("Dummy_app.exe") { Verb = "runas" };
Process.Start(startInfo);
Environment.Exit(0);
} else
{
Environment.Exit(0);
}
}