0%

WinUI3权限提升

微软总是喜欢先发布一个半成品,WinUI也不例外。早期的WinUI甚至无法做到权限提升,直到现在你去搜索相关内容,排行靠前的依旧是抱怨这一点的issue

不过好在这个问题在WindowsAppSDK v1.1中得到解决,虽然好像没什么人提到这一点。

做法

在WindowsAppSDK支持权限提升后,可以像其他C#项目那样在WinUI中提升权限。具体做法如下:

  1. app.manifest<assemblyIdentity>当中添加:

    1
    2
    3
    4
    5
    6
    7
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
    <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator"/>
    </requestedPrivileges>
    </security>
    </trustInfo>
  2. 以代码形式打开Package.appxmanifest,在<Capabilities>中添加:

    1
    <rescap:Capability Name="allowElevation" />

这样,WinUI项目就可以以管理员身份运行。