parameters - NSIS LogicLib 参数失败

标签 parameters nsis

我正在尝试制作一个安装程序,在安装程序初始化时执行多项检查,例如检查您的 Windows 是否为 64/32 位。如果嵌入式安装程序位于 EXEDIR 中。这是一段代码。

${If} ${RunningX32}
    MessageBox MB_OK "running on x32"
  ${AndIf} ${FileExists} "$EXEDIR\VDF2012-17.0.22.8.Client.exe" #32 bit version
    !insertmacro UnselectSection ${SEC02}
     SectionSetText ${SEC02} ""
    !insertmacro SelectSection ${SEC03}
  ${Else}
    !insertmacro UnselectSection ${SEC03}
      SectionSetText ${SEC03} ""
      MessageBox MB_OKCANCEL "${PRODUCT_NAME} misses the Visual DataFlex setup. \
                                      Do you wan't to download it?" IDOK true IDCANCEL false
        true:
          StrCpy $2 "$EXEDIR\VDF2012-17.0.22.8.Client.exe"
          inetc::get /caption "Downloading Visual DataFlex" /popup "" "ftp://ftp.dataaccess.com/pub/products/vdf/Software/VDF2012-17.0.22.8.Client.exe" "$EXEDIR\VDF2012-17.0.22.8.Client.exe" $2
          Pop $R0 ;Get the return value
          StrCmp $R0 "success" +3
          ExecWait $2
          Delete $2
        false:
    ${EndIf}

但是在第一行代码已经给了我这个错误,我尝试了一切来修复它..

!insertmacro: _If
!insertmacro: macro "_If" requires 4 parameter (s), passed 2!
Error in script "Path" Aborting blabla...

我希望我已经说清楚了。

最佳答案

没有名为 RunningX32 的宏,您需要使用 RunningX64 宏:

!include x64.nsh

...

${IfNot} ${RunningX64}
  ...

关于parameters - NSIS LogicLib 参数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12473879/

相关文章:

ios - 可变参数 v 数组参数

Java 选择性泛型

javascript - 传递参数是 if/else 决策的最佳解决方案

基于文件存在的 NSIS 脚本条件编译

MySQL : named parameters with PREPARE command?

c# - 如何将附加参数传递给谓词函数?

windows - 在 Windows 中将批处理文件放在哪里,以便在不更改 PATH 的情况下始终可以访问它?

sql - 如何从命令行输入 SQL 查询,并以更简单的格式检索输出

windows - NSIS 安装程序应用程序名称未正确显示

installation - NSIS 脚本是用什么语言编写的?