NSIS-仅当系统id为64位时才在SectionGroup中显示节

NSIS-仅当系统id为64位时才在SectionGroup中显示节,nsis,Nsis,我有一个由两个部分组成的部分组 SectionGroup /e "myGroup" GRPCONNECTOR Section "sec32" SEC32 .. SectionEnd Section "sec64" SEC64 .. SectionEnd SectionGroupEnd 两者都显示在组件页面中 现在,如果运行的操作系统是64位的,我希望只显示SEC64部分。 我该怎么做 我试过使用公共的${if}${RunningX64},但在这里失败了。你走

我有一个由两个部分组成的部分组

SectionGroup /e "myGroup" GRPCONNECTOR

  Section "sec32" SEC32
   ..
  SectionEnd

  Section "sec64" SEC64
   ..
  SectionEnd 

SectionGroupEnd
两者都显示在组件页面中

现在,如果运行的操作系统是64位的,我希望只显示SEC64部分。 我该怎么做


我试过使用公共的
${if}${RunningX64}
,但在这里失败了。

你走对了方向。使用x64.nsh中的宏处理64位/WoW内容,使用Sections.nsh中的辅助宏处理部分:

SectionGroup /e "myGroup" GRPCONNECTOR
Section "sec32" SEC32
SectionEnd

Section "sec64" SEC64 ; This must be placed before the usage of ${SEC64} in your .NSI file.
SectionEnd 
SectionGroupEnd

!include x64.nsh
!include LogicLib.nsh
!include Sections.nsh

Function .onInit
${IfNot} ${RunningX64}
    SectionSetText ${SEC64} "" ; Hide the section
    !insertmacro UnselectSection ${SEC64} ; And uncheck it
${EndIf}
FunctionEnd

Page Components
Page InstFiles

如果您发布整个脚本和/或编译器错误,这总是很有帮助的。