当前位置:  开发笔记 > 编程语言 > 正文

如何要求用户使用NSIS卸载以前的版本

如何解决《如何要求用户使用NSIS卸载以前的版本》经验,为你挑选了2个好方法。

我刚开始使用NSIS.
它工作得很好,但我发现文档有点非结构化.在使用NSIS安装新版本之前,如何要求用户卸载以前的版本?

NSIS(Nullsoft Scriptable Install System)是一个用于创建Windows安装程序的开源系统.



1> spinner_den_..:

NSIS是一个出色的Windows安装程序.以下是我在安装同一应用程序的新版本时使用NSIS卸载当前版本的方法.将以下函数添加到NSIS脚本中.

Function .onInit

         Exec $INSTDIR\uninst.exe 

FunctionEnd

你还可以检查出这对"自动卸载安装新先老"的NSIS维基链接.


不要使用$ INSTDIR.使用从注册表中读取的值来确保它是正确的.

2> cdmckay..:

另一种方法是创建一个UninstallPrevious隐藏的部分,并使其在安装程序中的所有其他部分之前运行.我还建议让卸载程序默默运行.

; The "" makes the section hidden.
Section "" SecUninstallPrevious

    Call UninstallPrevious

SectionEnd

Function UninstallPrevious

    ; Check for uninstaller.
    ReadRegStr $R0 HKLM "${HKLM_REG_KEY}" "InstallDir"

    ${If} $R0 == ""        
        Goto Done
    ${EndIf}

    DetailPrint "Removing previous installation."    

    ; Run the uninstaller silently.
    ExecWait '"$R0\Uninstall.exe /S"'

    Done:

FunctionEnd

这种方法的优点是用户在准备安装新版本之前不会卸载旧版本.此外,他们甚至不必做出卸载旧版本的决定,它只是神奇地消失了.

当然,根据您的需要,您可能希望用户确认卸载,在这种情况下使用spinner_den的方法.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有