【发布时间】:2016-02-12 12:58:36
【问题描述】:
我创建了一个非常简单的安装程序,它不添加任何注册表项或任何内容。它只是安装一些 python 可执行程序的一些文件。安装程序只包含 1 个步骤,询问安装目录,然后安装软件。
问题:如果安装了以前版本的程序或用户选择的目录中包含文件,我想通过运行CleanInstallationDirectory函数来做一些检查在安装开始之前。
我的问题是:当用户选择目录而不在安装进度开始后如何运行该功能?我想运行该函数,并根据该函数的返回或基于该函数的内部调用显示一条消息,确认该目录中的所有内容都将被删除,然后如果用户确认,则安装开始。
替代方案:如果不能这样做,那么我可以接受以下操作:如果用户在安装过程中说“否”,安装程序应返回目录页面以询问不同的目录。
这是我目前拥有的 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."
谢谢。
【问题讨论】:
标签: installation customization nsis