NSIS页面和部分执行

时间:2013-03-08 12:13:28

标签: nsis sections

可能我没有在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

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

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

2 个答案:

答案 0 :(得分:6)

所有部分都在instfiles页面上按照部分的顺序执行。如果你需要在之前,之后或之间执行的东西,你可以使用函数(例如预函数或假函数)

答案 1 :(得分:4)

!insertmacro MUI_PAGE_INSTFILES执行各个部分。