Comment ajoutez-vous des chaînes calculées d'installation sur des scripts d'innosetup?
-
11-12-2019 - |
Question
Actuellement, lorsque je mettez à niveau un programme, je sauvegardez les fichiers existants vers un dossier nommé sauvegarde dans le répertoire de programme, par exemple.
Source: "{app}\filename.exe"; DestDir: "{app}\backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
existe-t-il un moyen de spécifier ou de calculer une chaîne afin que le code soit quelque chose comme
Source: "{app}\filename.exe"; DestDir: "{app}\backup{date}"; Flags: external skipifsourcedoesntexist uninsneveruninstall
ou combiner une date avec INFO sur la version précédente
Source: "{app}\filename.exe"; DestDir: "{app}\backup{previous version}{date}"; Flags: external skipifsourcedoesntexist uninsneveruninstall
La solution
Please read Pascal Scripting: Scripted Constants and Pascal Scripting: Support Functions Reference. Also read this and this. Anyway, this is how I did it:
[Dirs]
; create an empty folder...
Name: "{app}\{code:MyDateTimeString}"
[Code]
function MyDateTimeString(Param: String): String;
begin
Result := GetDateTimeString('yyyy.mm.dd_hh.nn.ss', #0, #0);
end;
Autres conseils
You can add runtime dynamic values using {code:...}
constants.
An example of getting the current date and making a backup of the installation folder can be seen on the ISXKB wiki
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow