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固有でない限り、「if $ major == 6 or($ major == 6 and $ minor> = 2)」のようなロジックが必要なので、Win9などでも機能します。

于 2012-10-25T20:31:56.617 に答える