5

可能我没有获得 nsis 脚本中页面和部分的基础知识。

我必须分析不是我制作的安装脚本。例如,在脚本的顶部有 MUI 页面的宏

!insertmacro MUI_PAGE_LICENSE $(license)
!insertmacro MUI_PAGE_INSTFILES ....

然后再往下看代码有部分

Section "MainSection" SEC01

  SetShellVarContext current

  SetOutPath "$INSTDIR"
  SetOverwrite ifnewer
  File "${xy_TEMP_SRC}\InstallSrc\xy.exe"
  File "${xy_TEMP_SRC}\InstallSrc\xy.exe.config"

  SetOutPath "$INSTDIR\sk"
  File "${xy_TEMP_SRC}\InstallSrc\sk\xy.resources.dll"

  SetOutPath "$INSTDIR"

  CreateDirectory "$SMPROGRAMS\xy"
  CreateShortCut "$SMPROGRAMS\xy\xy.lnk" "$INSTDIR\xy.exe"
  CreateShortCut "$DESKTOP\xy.lnk" "$INSTDIR\xy.exe"

SectionEnd  
+ another sections for instance unninstall section

我的问题是,当页面没有对这些部分的引用时,如何以及何时执行这些部分。

我的大脑告诉我,有时应该在安装过程中的页面确认期间执行这些部分,但我猜它是错误的,所以请谁能告诉我它实际上是如何工作的?

4

2 回答 2

7

所有部分都在instfiles页面上按照您的部分的顺序执行。如果您需要在之前、之后或之间执行某些东西,您可以使用函数(例如 pre- 或 leave 函数)

于 2013-03-08T12:38:59.300 回答
4

!insertmacro MUI_PAGE_INSTFILES执行部分。

于 2013-03-08T12:40:04.430 回答