application manifest 中的requestedElevationLevel令牌
Posted on 2011-06-02 19:41 冰碟 阅读(1102) 评论(0) 编辑 收藏 举报xmlns=”urn:schema-microsoft-com:asm.v3”>
Level=”requireAdministrator”
uiAccess=”false”/>
不需要管理权限的可执行文件(如 Notepad.exe)指定 asInvoker 值。某些可执行文件预期管理员始终希望具有最大访问权限,因此他们使用 highestAvailable 值。如果某用户运行具有该值的可执行文件,那么仅当他在 AAM 中运行或被视为管理员(根据早先定义的规测)且必须提升以获得其管理权限时,才会要求提升他的权限。例如,Regedit.exe、Mmc.exe 和 Eventvwr.exe 都是使用 highestAvailable 的应用程序。最后,requireAdministrator 始终会导致提升请求,任何没有管理权限就无法操作的可执行文件需要使用该值。
可访问性应用程序为 uiAccess 属性指定“true”,以便驱动所提升进程的窗口输入,并且它们还必须带有签名并位于多个安全位置(包括 %SystemRoot% 和 %ProgramFiles%)之一以获取该能力。
附:
问:
VB.net(VS2008)里面 直接在项目属性的“应用程序”里面点击“查看UAC设置”,在新打开的app.manifest里面把 <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 替换成 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 再编译后,出现 ClickOnce does not support the request execution level 'requireAdministrator' 错误! 不知道如何解决!
答:
如果要求使用系统管理员级别运行,就不能使用ClickOne方式发布。
2,
问:
我很希望能够指定路径安装,并且可以多个Windows帐号使用。
就象一般的安装程序一样,或许需要管理员权限的帐号安装,但是别的非管理员帐号也可以使用。
对于ClickOnce提供的恢复到以前版本的功能,我觉得用处不是很大,至少我暂时不需要。这导致了多个目录。
我现在需要的就是可以自动更新,还可以指定目录安装,还可以允许多个Windows帐号使用。
答:
ClickOnce 可以提供自动应用程序更新。ClickOnce 应用程序会定期读取其部署清单文件,以查看是否有可用的应用程序更新。如果有,则会下载并运行应用程序的新版本。为提高效率,仅下载那些已更改的文件。
【选择 ClickOnce 更新策略 】
http://msdn2.microsoft.com/zh-cn/library/s22azw1e(VS.80).aspx
问题二:还可以指定目录安装。
不可更改。ClickOne默认将程序安装在ClickOnce 应用程序缓存。缓存是当前用户的 Documents and Settings 文件夹中 Local Settings 目录下的一系列隐藏目录。
关于【ClickOnce 缓存概述】:http://msdn2.microsoft.com/zh-cn/library/267k390a(VS.80).aspx
问题三:可以允许多个Windows帐号使用。
Clickone不能为多个用户安装,也就是,安装的时候,不需要管理员的权限,普通用户就可以安装。所以对于一台机器上的每一个用户,都需要安装一次。