2
我想動態設置SetOverwrite
狀態以便無條件地替換一些文件或僅在我的安裝程序提供更新的版本時進行替換。Conditional 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宏)是否重載了前一個語句。
如果我在File
指令前添加另一個SetOverwrite on
,則文件將被正確替換。
我的分析是否正確?我怎麼能在運行時決定文件是否可以被替換?
我擔心這種解釋,但是在手冊中沒有發現它自己......在現實世界的情況下,我有很多'File'語句來複制幾個部分。 :(感謝您指向我。 – Seki