0

現在、インストーラーが必要とするいくつかのファイルを、Windows temp ディレクトリに配置されたフォルダーに抽出しています。私が今設定した方法は、そのフォルダには製品名と日付に基づいた一意の名前があるということです.

問題は、フォルダー名変数全体がインストーラーの実行時ではなく、インストーラーのビルド時に設定されることです。つまり、同じインストーラーが実行されるたびに新しい一時フォルダーが作成されないということです。

フォルダーを作成するために使用しているコードは次のとおりです。

; Support folder
;  this folder will contain temporary files visibible only for the lifetime of the installation
!define /date SUPPORTDIR "$TEMP\${PRODUCT_NAME}_%y%m%d%H%M%S"

var InitSupportDirDone
function InitSupportDir
    ${if} $InitSupportDirDone != 1
        SetOutPath "${SUPPORTDIR}"
        !include supportfiles.nsh
        StrCpy $InitSupportDirDone 1
    ${endif}
functionend

これにより、ビルド ログからわかるように、SUPPORTDIR が既に設定されています。

!define: "SUPPORTDIR"="$TEMP\Test-Proj_130911164903"

ビルド時ではなく、インストーラーが実行されるたびに日付 (およびフォルダー名) が設定されるようにするにはどうすればよいですか?

4

1 に答える 1

1

0 のサフィックスから始まり、その名前のフォルダーが存在する限り増加するループを作成できますが、その必要がない場合は、呼び出しInitPluginsDirて一時フォルダーとして.onInit使用するだけです...$pluginsdir

于 2013-09-17T15:12:14.900 に答える