代码之家  ›  专栏  ›  技术社区  ›  NeatNerd

NSIS中有多条路径。代码无法执行

  •  0
  • NeatNerd  · 技术社区  · 12 年前

    在安装之前,我需要向用户询问几个路径,但我无法在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 回复  |  直到 12 年前
        1
  •  2
  •   Slappy    12 年前

    我第一次看到 !定义MUI_CUSTOMPAGECOMMANDS 以及其他一些。NSIS或手册中没有对其进行参考。它们是什么?

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

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

    MUI_PAGE_CUSTOMFUNCTION_PRE function
    MUI_PAGE_CUSTOMFUNCTION_SHOW function
    MUI_PAGE_CUSTOMFUNCTION_LEAVE function
    

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

    我认为最简单的方法是修改现有的示例(可以在NSIS\Examples目录中找到),您的脚本根本没有意义。