Installation NSIS安装程序:安装前在目录页上运行一个函数
我创建了一个非常简单的安装程序,它不添加任何注册表项或任何东西。它只是安装一些python可执行程序的一些文件。安装程序只包含一个步骤,询问安装目录,然后安装软件 问题:如果安装了以前版本的程序或用户选择的目录中包含文件,我希望在安装开始之前运行函数Installation NSIS安装程序:安装前在目录页上运行一个函数,installation,customization,nsis,Installation,Customization,Nsis,我创建了一个非常简单的安装程序,它不添加任何注册表项或任何东西。它只是安装一些python可执行程序的一些文件。安装程序只包含一个步骤,询问安装目录,然后安装软件 问题:如果安装了以前版本的程序或用户选择的目录中包含文件,我希望在安装开始之前运行函数cleanstallationdirectory进行一些检查 我的问题是:在安装过程开始后,当用户选择目录而不是时,我如何运行该功能?我想运行该函数,并根据该函数的返回或基于该函数的内部调用显示一条消息,确认该目录中的所有内容都将被删除,如果用户确认
cleanstallationdirectory
进行一些检查
我的问题是:在安装过程开始后,当用户选择目录而不是时,我如何运行该功能?我想运行该函数,并根据该函数的返回或基于该函数的内部调用显示一条消息,确认该目录中的所有内容都将被删除,如果用户确认,则安装开始
备选方案:如果不可能做到这一点,那么我同意以下几点:如果用户在安装过程中说“不”,安装程序应该返回目录页面询问其他目录
以下是我目前拥有的NSIS安装程序脚本:
Function CleanInstallationDirectory
## do stuff
FunctionEnd
Name "My Software"
OutFile "GNOMEAcqInstaller.exe"
InstallDir "D:\MySoftware"
RequestExecutionLevel admin
!define MUI_ABORTWARNING
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section "Installation" InstallSection
SetOutPath "$INSTDIR"
Call CleanInstallationDirectory
File /r "MyFiles\*"
SectionEnd
LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."
谢谢。如果您查看中的“页面自定义函数”部分,您将发现一些定义的名称,您可以在每页的基础上设置这些定义,这些定义将调用自定义函数。您希望MUI_页面\u自定义功能\u显示
或MUI_页面\u自定义功能\u离开
,具体取决于您希望函数运行的时间
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CleanInstallationDirectory
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
如果在自定义休假功能中调用Abort
,则可以阻止安装程序转到下一页