时间:2017年03月30日 | 作者 : aaronyang | 分类 : WPF | 浏览: 1263次 | 评论 0 人
1)右键项目属性
2)选择安全性,勾选“启用ClickOnce安全设置”
3)在项目的Properties文件夹中,找到app.mainfest
4)将节点
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
改为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
5)回到项目属性中的安全性选项,去掉“启用ClickOnce安全设置”。
6)保存,编译
一直到现在,都还是顺利的,
7)发布。。。报错!
错误 6 ClickOnce does not support the request execution level 'requireAdministrator'.
这是什么狗屁错?继续搜索,搜索的结果都是说要在项目属性页面中,安全性选项卡中的“启用ClickOnce安全设置”去掉勾选。
那就去掉勾选,然后重新发布,仍旧报错,回到安全性选项卡中发现,“启用ClickOnce安全设置”又被勾选上了。
奇怪了。。。。。
网上搜索了N久,终于找到了解决办法
为了使得发布之后的程序能够获得管理员的权限
1)app.mainfest文件中
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
节点的值设置为 asInvoker
2)在App.cs中增加以下代码:
/// <summary>
/// 检查是否是管理员身份
/// </summary>
private void CheckAdministrator()
{
var wi = WindowsIdentity.GetCurrent();
var wp = new WindowsPrincipal(wi);
bool runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);
if (!runAsAdmin)
{
// It is not possible to launch a ClickOnce app as administrator directly,
// so instead we launch the app as administrator in a new process.
var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
// The following properties run the new process as administrator
processInfo.UseShellExecute = true;
processInfo.Verb = "runas";
// Start the new process
try
{
Process.Start(processInfo);
}
catch (Exception ex)
{
ex.WriteLog();
}
// Shut down the current process
Environment.Exit(0);
}
}
3)重写 OnStartup 函数
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
CheckAdministrator();
//如果不是管理员,程序会直接退出,并使用管理员身份重新运行。
StartupUri = new Uri("MainWindow.xaml", UriKind.RelativeOrAbsolute);
}
4)保存,重新生成,发布
加入上面的代码之后,重新使用ClickOnce方式发布,安装。在运行的时候,会弹出“您想允许来自未知发布者的以下程序对此计算机进行更改吗”的对话框,点击“是” 程序就会以管理员身份运行了。
推荐您阅读更多有关于“WPF,”的文章
合肥科大智能常年招聘C# .NET CORE,vue前端,JAVA开发,有想换工作的私聊我和AY交流
抖音号:wpfui,可以看到我的很多作品效果,私活合作请qq联系我
AYUI8社区版Github地址:前往获取
作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司和AY交流
高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活
声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱
不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo
查看捐赠AYUI7.X MVC教程 更新如下:
第一课 第二课 程序加密教程vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF
额 本文暂时没人评论 来添加一个吧
发表评论