我需要在安装之前询问用户多个路径,但我无法在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
显然,这三个函数的代码没有被执行
答案 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目录中找到),你的脚本完全没有意义。