如何通过Eclipse产品配置避免自制RCP安装程序请求管理员权限?
当然可以通过Eclipse产品配置来解决这个管理员权限请求的问题!不用再依赖第三方工具的调整,直接从产品配置层面就能搞定,下面是具体的操作要点:
1. 修改默认安装目录为用户级路径
安装程序触发权限请求,最常见的原因就是默认要往系统级目录(比如Windows的C:\Program Files)写入文件,系统会自动要求管理员权限。你可以在Eclipse产品配置的安装程序设置里,把默认安装路径改成用户专属的目录,比如%USERPROFILE%\AppData\Local\你的应用名称。这样整个安装过程只会在当前用户有权限的区域操作,自然就不会弹出权限请求了。
2. 配置安装程序的权限清单(Manifest)
针对Windows平台,你可以通过配置安装程序的manifest文件来控制权限级别。找到产品配置里的manifest设置项,把requestedExecutionLevel的值设为asInvoker(而不是默认的requireAdministrator或者highestAvailable)。这个配置会告诉Windows:这个安装程序只需要当前用户的权限就能运行,不需要提升到管理员级别。
如果是用Tycho或者Eclipse Installer构建安装包,你可以在.product文件的构建配置里添加对应的参数,或者在安装工具的配置文件里明确指定这个属性。
3. 排查并调整产品内的系统级操作
有时候权限请求不是来自安装程序本身,而是你的RCP产品首次运行时,有插件在尝试执行需要管理员权限的操作——比如修改系统注册表(HKEY_LOCAL_MACHINE)、写入系统环境变量、访问系统级文件等。你需要检查产品里的插件代码,把这些操作调整为用户级权限可执行的方式:
- 将注册表写入目标改成
HKEY_CURRENT_USER分支 - 把配置文件存储到用户的应用数据目录,而非系统目录
- 避免修改系统级的环境变量,改用用户级变量
只要把这几点都调整到位,你的Eclipse RCP安装程序就能在不需要管理员权限的情况下正常安装运行了。
内容的提问来源于stack exchange,提问作者grh

