Inno Setup: How to overwrite on install but not on change? -


i know how overwrite files using method

[files] source: "project\*"; destdir: "{app}"; flags: ignoreversion recursesubdirs onlyifdoesntexist; permissions: everyone-full 

but when change program using change option in 'install or change program' section want not overwrite files.

i create change option installer this:

[setup] appmodifypath="{srcexe}" /modify=1 

how do this?

first, code seems wrong. onlyifdoesntexist flag, files never overwritten, contrary claim.


anyway, solution create 2 [files] entries, 1 overwrites , 1 not. , use pascal scripting pick entry respective installation mode.

[files] source: "project\*"; destdir: "{app}"; flags: ... onlyifdoesntexist; ...; check: isupgrade source: "project\*"; destdir: "{app}"; flags: ...; ...; check: not isupgrade 

example of isupgrade implementation:

[code]  function isupgrade: boolean; var   s: string;   innosetupreg: string;   apppathname: string; begin     { expandconstant here inno script studio, }   { generated appid in form of guid. }   { leading { of guid has doubled in inno setup, }   { , expandconstant collapses single {. }   innosetupreg :=     expandconstant(       'software\microsoft\windows\currentversion\uninstall\{#setupsetting("appid")}_is1');   apppathname := 'inno setup: app path';   result :=     regquerystringvalue(hklm, innosetupreg, apppathname, s) or     regquerystringvalue(hkcu, innosetupreg, apppathname, s); end; 

see pascal scripting: check parameters.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -