0

我的源代码中有两个 jre 文件。我根据用户输入创建了两个 exe 文件并更改了名为的输出文件。

现在基于 outfile 我想包含 jre 文件。如果 outfile 包含 64,则包含 64 位 jre,否则包含 32 位 jre。我试过下面的代码。但它不起作用?

    !ifdef PLATFORM64
    OutFile setup64.exe
    !else
    OutFile setup32.exe
    !endif 
Function .Oninit
 ${StrContains} $0 "64"  OutFile
 File /oname=$JRE_INSTALLER_FILE_NAME "$TEMP\jre-6u29-windows-x64.exe"
FunctionEnd

问题: 1.如何包含任何一个基于outfile命名的jre文件?

4

1 回答 1

0

大概是这样的:

!ifdef PLATFORM64
OutFile setup64.exe
!else
OutFile setup32.exe
!endif

Function .Oninit
  var JRE_PLATFORM_FILE
  ${StrContains} $0 "64" $OutFile
    StrCmp $0 "" notfound
      StrCpy $JRE_PLATFORM_FILE "file-name-for-64-bit-JRE"
      Goto done
    notfound:
      StrCpy $JRE_PLATFORM_FILE "file-name-for-32-bit-JRE"
    done:
  File /oname=$JRE_INSTALLER_FILE_NAME $JRE_PLATFORM_FILE
FunctionEnd
于 2013-06-11T15:24:02.393 回答