1. 背景
使用nsis制作的windows安装包在安装时,将安装目录设置到非系统盘里,安装完成后一般不会出现读写权限的异常问题。但是,安装时选择在系统盘里安装,会出现读写权限的异常问题,除非使用管理员运行。
2. 使用AccessControl修改权限
2.1 安装AccessControl.dll
找到nsisan安装路径查看Plugins目录下的这两个文件夹下是否已存在AccessControl.dll
如果存在以下过程可以忽略
使用nsis插件AccessControl修改安装目录的权限,具体步骤:
下载AccessControl插件:官网下载地址
AccessControl解压后,将i386-ansi和i386-unicode下的AccessControl.dll分别复制到nsis软件安装目录里的Plugins文件夹下的x86-ansi和x86-unicode文件夹里即可。
2.2 修改脚本
在nsis脚本SetOutPath "$INSTDIR"下一行添加
AccessControl::GrantOnFile \
"$INSTDIR" "(BU)" "GenericRead + GenericWrite"
Pop $0