程序打包安装权限问题

博客讨论了在Windows环境下,程序安装在ProgramFiles目录下无管理员权限时面临的读写和更新挑战。提出三种解决方案:1) 编译时添加管理员权限(不推荐),2) 安装在appdata目录,3) 默认安装在ProgramFiles,更新时临时申请权限。建议遵循微软推荐,将用户数据保存在appdata或ProgramData,确保程序更新顺利。
摘要由CSDN通过智能技术生成

昔时贤文,诲汝谆谆,集韵增广,多见多闻。今年的第一篇博客,哎,懒惰了。。。

环境:windows cs架构,客户端

当我们程序要发布版本的时候,首先就是需要进行打包成安装包,比如用inno setup进行打包,然后供用户下载,不管你的介质是线上下载还是线下载体拷贝。
程序员应该都知道,有些目录的属性是只读,或者受系统保护,比如c盘包含Program Files的文件夹如果要写入就需要管理员权限。

遇到的问题
当有这种情况,就是我们客户端安装在比如Program Files目录且没有管理员方式运行时:

1.客户端在运行中可能会涉及向本地文件(Program Files目录)进行读写数据,那必然会写入失败。
2.客户端启动时需要更新客户端,如果更新程序没有管理员权限也会更新失败。

如何解决
查看了很多软件的安装方式,有的默认安装在appdata目录,有的安装在Program Files目录,需要升级的时候也是临时申请权限(UAC),比如QQ:
在这里插入图片描述
方法1.程序编译的时候就给exe添加管理员权限,包括打包后的安装包也添加管理员权限,但这样也是有问题的,有时候拷贝到另一台电脑上的时候你会发现管理员权限消失了,这就尴尬了,因此不推荐!

方法2.就是将程序安装在比如appdata目录,不好的地方就是万一有的用户喜欢找茬偏要选择安装在Program Files目录呢?所以还是得设置安装包禁止用户选择安装路径。不够完美,依情况选择!

方法3.我认为比较标准的就是将程序默认安装在Program Files目录,这也是微软推荐的,防止流氓软件瞎搞,涉及到用户数据比如配置文件,保存的数据这些可以写在appdata目录或ProgramData目录,涉及到程序更新则临时向用户申请权限进行更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值