Просто подробней об ответе Филио:
В разделе [INI] установщика просто измените все на новый файл .ini, затем в коде переименуйте старый файл на шаге ssInstall следующим образом:
procedure CurStepChanged(CurStep: TSetupStep);
var
OldFile: string;
begin
if CurStep = ssInstall then
begin
OldFile := ExpandConstant('{app}\old.ini');
if FileExists(OldFile) then
RenameFile(OldFile, ExpandConstant('{app}\new.ini'));
end;
end;
Он работает, как и ожидалось, потому что ssInstall происходит перед разделом [INI], поэтому, когда установщик пытается создать новый INI-файл, старый будет уже переименован и при необходимости просто обновит все записи.