软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > 其它语言 > NSIS文件覆盖、更新和删除文件的使用方法

NSIS文件覆盖、更新和删除文件的使用方法

可能大家在使用NSIS制作安装包时会遇到覆盖文件或只覆盖较新文件的问题,这里烈火网就给大家整理了一些使用实例,欢迎阅读。

碰到要处理分支:
1、覆盖安装。(覆盖掉用户所有上个版本安装的文件)SetOverwrite on
2、先卸载再安装。(保留一部分数据)SetOverwrite off
这样就需要根据在卸载时候uninst,用户的选择1或者2,进入安装时生成条件分支。
无奈卸载和安装是两个进程做的事情,无法保存全局变量在处理。所以曲线救国,在卸载时写入文件uninst.txt数据value,安装时从uninst.txt读取value,用value值判断用户是哪种选择,进而决定我们是覆盖还是不覆盖安装。
${If} $value == 0
SetOverwrite on
${Else}
SetOverwrite off
${EndIf}
File blah.dat
问题来了,我们选择开关on或者off,不起作用。查阅资料,原来直接写在分支下面才能起作用,英文资料为:

File blah.dat # overwrite is always off here!
Instead, the following should be used.

改为:
${If} $value == 0
SetOverwrite on
File blah.dat
${Else}
SetOverwrite off
File blah.dat
${EndIf}
这里用了个小技巧,只要两个分支,用是否存在uninst.txt判断即可。打包时打进去uninst.txt,之后有需要删除掉。
如下:
IfFileExists "$INSTDIR\uninst.txt" 0 +3
$value = 0
Delete "$INSTDIR\uninst.txt"

    相关阅读
    网友评论
    栏目导航
    推荐软件