【发布时间】:2014-05-14 21:07:17
【问题描述】:
当我在寻找如何确定 Windows 操作系统是 32 位还是 64 位的答案时,我偶然发现了另一个答案:Use NSIS to install 32bit...,并在下面使用了此代码。
!include x64.nsh
Function .onInit
#Determine the bitness of the OS and enable the correct section
${If} ${RunningX64}
SectionSetFlags ${SEC0000} ${SECTION_OFF}
SectionSetFlags ${SEC0001} ${SF_SELECTED}
${Else}
SectionSetFlags ${SEC0001} ${SECTION_OFF}
SectionSetFlags ${SEC0000} ${SF_SELECTED}
${EndIf}
FunctionEnd
但是,我遇到了这个错误:
!insertmacro: If
!insertmacro: macro named "_LOGICLIB_TEMP" not found!
Error in macro _RunningX64 on macroline 1
Error in macro If on macroline 5
我不确定这是怎么回事。我认为这可能与 LogicLib.nsh 有关,但我使用完全相同的 if,else 语句在同一脚本中的其他位置,并且没有问题。所以,它让我相信是 x64.nsh 库阻止了我。
【问题讨论】:
-
这是哪个 NSIS 版本?
-
我用的是 2.9,后来升级到了 3.0。两者都有错误,但这是我拥有的库文件的问题。我需要这个 nsis.sourceforge.net/Include/LogicLib.nsh ,我拥有的另一个 lib 文件完全错误。
-
2.9 于 2005 年发布,没有 x64.nsh!