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と、ファイルは正しく置き換えられます。
私の分析は正しいですか?ファイルを置換できるかどうかを実行時にどのように判断できますか?