NSIS中的多条路径。代码没有被执行

时间:2013-04-08 09:21:37

标签: nsis

我需要在安装之前询问用户多个路径,但我无法在NSIS中完成它。好像我的代码在MUI中没有被引用:

!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico""
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!define MUI_CUSTOMPAGECOMMANDS
!define MUI_DIRECTORYPAGE
!define MUI_CUSTOMFUNCTION_COMPONENTS_LEAVE ComponentPost
!define MUI_CUSTOMFUNCTION_DIRECTORY_SHOW DirectoryShow
!define MUI_CUSTOMFUNCTION_DIRECTORY_LEAVE DirectoryLeave

编译时我得到

  install function "ComponentPost" not referenced - zeroing code (0-2) out

  install function "DirectoryShow" not referenced - zeroing code (2-49) out

  install function "DirectoryLeave" not referenced - zeroing code (49-61) out

显然,这三个函数的代码没有被执行

1 个答案:

答案 0 :(得分:2)

我第一次看到!定义MUI_CUSTOMPAGECOMMOMMANDS 和其他一些。在NSIS或手册中没有它们的参考。它们是什么?

如果要将页面目录添加到安装程序中,请使用名为 MUI_PAGE_DIRECTORY 的宏(而不是MUI_DIRECTORYPAGE)

要为此页面添加PRE / SHOW / LEAVE功能,请使用

MUI_PAGE_CUSTOMFUNCTION_PRE function
MUI_PAGE_CUSTOMFUNCTION_SHOW function
MUI_PAGE_CUSTOMFUNCTION_LEAVE function

应在插入页面宏之前设置这些定义。

我认为最简单的方法是修改一个现有的例子(可以在NSIS \ Examples目录中找到),你的脚本完全没有意义。