現在、インストーラーが必要とするいくつかのファイルを、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"
ビルド時ではなく、インストーラーが実行されるたびに日付 (およびフォルダー名) が設定されるようにするにはどうすればよいですか?