【问题标题】:WPF application manifest fileWPF 应用程序清单文件
【发布时间】:2020-11-26 09:06:32
【问题描述】:

我有一个 WPF 应用程序,我希望它能够始终以管理员身份启动。我已经阅读了很多关于它的内容,看来我必须创建自己的清单文件并将其传递给应用程序属性,以便在运行时以管理员身份启动。

应用程序本身会加载一个文件,有时该文件可能需要管理员访问权限才能对其进行修改。这就是为什么我正在寻找一种在安装应用程序后能够始终以管理员模式启动的方法。

【问题讨论】:

  • 要创建manfiest,右键单击您的项目,选择添加新项目...,然后选择应用程序清单类型。

标签: c# wpf manifest


【解决方案1】:

要添加清单,请在解决方案资源管理器右键单击您的项目文件

  1. 选择添加

  2. 新项目

  3. 选择应用程序清单文件

该文件应命名为 app.manifest。不要重命名。


您必须更改 Manifest 中的 <requestedExecutionLevel> 元素才能始终以管理员身份启动:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

顺便说一句:这个问题的一篇好文章:
https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/ui-automation-security-overview

【讨论】:

  • 使用 ClickOnce 发布时不能这样做。
  • 为什么不呢?根据 MSDN,它是相同的 XML 规范:msdn.microsoft.com/en-us/library/ws1c2fch.aspx
  • 好吧,我添加了清单文件,更改了您告诉的行并尝试发布 ClickOnce 版本。结果是错误:“ClickOnce 不支持请求执行级别'requireAdministrator''。
  • 以管理员身份启动我做了一个解决方法,以管理员身份启动一个新进程并终止当前不是管理员的进程。更多详情:stackoverflow.com/questions/2532769/…
【解决方案2】:

在 Visual Basic 中,项目属性的结构略有不同。如果您发现这个问题并且您在 VS2010 中使用 VB,请按照这些说明生成 app.manifest 文件。

  1. 要创建 app.manifest 文件,请转到您的项目,然后选择属性。然后点击Application标签下的View Window Settings
  2. 这应该会生成并打开 app.manifest 文件,该文件保存在您的我的项目文件夹

延伸阅读: WPF MessageBox window style

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2021-03-08
    • 2014-05-31
    • 2011-01-20
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多