SetOverwrite
一部のファイルを無条件に置き換えるか、セットアップで新しいバージョンが提供されている場合にのみ置き換えるかを選択する状態を動的に設定しようとしています。
私はlogiclibで試しました
${if} $isReinstall = 1
SetOverwrite on
${debug} "SetOverwrite on (overwrite)"
${else}
SetOverwrite ifnewer
${debug} "SetOverwrite ifnewer"
${endif}
File "foo"
しかもクラシックでIntCmp
IntCmp $isReinstall 1 0 +3 +3
SetOverwrite on
goto +2
SetOverwrite ifnewer
File "foo"
しかし、何も機能していないようです。ファイルfoo
が既にディスクに存在する場合、常にスキップされます。私の$isReinstall
存在1
かどうか。
SetOverwrite
(logiclib マクロに関係なく) 一連の命令の最後のステートメントが前のステートメントをオーバーロードしているようです。
SetOverwrite on
ディレクティブの直前に別のものを追加するFile
と、ファイルは正しく置き換えられます。
私の分析は正しいですか?ファイルを置換できるかどうかを実行時にどのように判断できますか?