0

我正在尝试在我的 NSIS 脚本中执行以下操作。我不知道 NSIS,我只是下达了一个任务来调整一些东西。这个想法:如果这是window8,从不同的位置获取一些.exe文件部署到目标机器上:

所以我从获取版本开始:

ReadRegStr $WINVER HKLM \
 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion

在要安装的文件列表中,我这样做:

;List of files to install
File file1.exe
File file2.exe

${If} StrCmp $WINVER '6.2'
  File .\otherlocationSource\file1.exe
  File .\otherlocationSource\file2.exe
${EndIf}

我在 ${if}... 行收到 NSIS 脚本编译错误。

对于我做错了什么,我将不胜感激。

4

1 回答 1

0

${If} 宏在内部使用 StrCmp,语法是,${If} $WINVER == "6.2"但您确实应该使用 WinVer.nsh 进行版本检查。(如果您的本地副本不支持 Win8 ,您可以从SVN获取版本值)

对于这样的版本检查,除非它是特定于 Win8 的,否则您应该具有类似于“如果 $major > 6 或 ($major == 6 and $minor >= 2)”的逻辑,因此它也适用于 Win9 等

于 2012-10-25T20:31:56.617 回答