none
Winform获得管理员权限出现错误(ClickOnce 不支持请求执行级别) RRS feed

  • 问题

  • 工具:VS2010(管理员权限运行)

    系统:Win7

    我把程序启用ClickOnce后

    把app.manifest中的requestedExecutionLevel  level修改为requireAdministrator

    VS提示错误:错误 1 ClickOnce 不支持请求执行级别“requireAdministrator”。

    这是我的配置文件

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <!-- UAC 清单选项
                如果要更改 Windows 用户帐户控制级别,请用以下节点之一替换 
                requestedExecutionLevel 节点。
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
                指定 requestedExecutionLevel 节点将会禁用文件和注册表虚拟化。
                如果要利用文件和注册表虚拟化实现向后 
                兼容性,则删除 requestedExecutionLevel 节点。
            -->
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>
      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
          <!-- 此应用程序设计使用的所有 Windows 版本的列表。Windows 将会自动选择最兼容的环境。-->
          <!-- 如果应用程序设计使用 Windows 7,请取消注释以下 supportedOS 节点-->
          <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
        </application>
      </compatibility>
      <!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
      <!-- <dependency>
        <dependentAssembly>
          <assemblyIdentity
              type="win32"
              name="Microsoft.Windows.Common-Controls"
              version="6.0.0.0"
              processorArchitecture="*"
              publicKeyToken="6595b64144ccf1df"
              language="*"
            />
        </dependentAssembly>
      </dependency>-->
    </asmv1:assembly>

    2012年8月24日 6:21

答案

全部回复

  • Hi MaJiXiang,

      在VS2010下 右键项目=>属性=>安全性=>直接勾选“启用ClickOnce安全设置”即可解决问题。更改level时候会提示错误“ClickOnce不支持请求执行级别...” 。

     


    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月27日 4:45
    版主
  • 你好版主,就是以为开启了ClickOnce安全设置后,在app.manifest中修改了level才导致的错误。但是不修改level又获得不了更高的权限。

    2012年8月27日 5:09
  • 使用ClickOne方式发布不允许系统管理员级别。
    如果要求使用系统管理员级别运行,就不能使用ClickOne方式发布。
    2012年8月27日 5:25
  • 这个问题也困扰了我好几天,最近看到一个帖子,试了一下貌似可以,就是将requestedPrivileges的xmlns属性去掉。

    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

    换成

    <requestedPrivileges>

    2012年9月4日 23:16
    • 不行啊,我是win7 64位的系统。

    2013年11月1日 13:11
  • 这个问题也困扰了我好几天,最近看到一个帖子,试了一下貌似可以,就是将requestedPrivileges的xmlns属性去掉。

    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

    换成

    <requestedPrivileges>

    • 不行啊,我是win7 64位的系统。

    2013年11月1日 13:11