DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de projet / Patch d'application
  • Présentation
  • Principe
  • Qu'est-ce qu'un patch ?
  • Fonctionnement des patchs
  • Limitations
  • Re-création d'un exécutable
  • Patchs et branches du GDS
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Lorsqu'une application est installée, chaque modification nécessite normalement la réinstallation au moins de la bibliothèque de l'application (fichier WDL).
Cette manipulation peut être pénalisante par exemple :
  • lorsque la modification ne concerne qu'une seule fenêtre sur les 500 fenêtres de l'application.
  • lors de mises à jour de l'application par Internet, en raison de la taille de la bibliothèque.
Il est possible de livrer des ressources complémentaires (fenêtres, états, etc.) sous forme de patch. Ces patchs sont en fait des bibliothèques additives.
Si l'exécutable a été créé avec l'option "L'exécutable prendra en compte les mises à jour par patch", lors du lancement de l'application, les éléments présents dans le patch se substitueront aux éléments présents dans la bibliothèque de l'application.
Principe

Qu'est-ce qu'un patch ?

Un patch est une bibliothèque annexe qui contient les éléments qui vont remplacer les éléments de la bibliothèque d'origine.
Un patch ne contient pas nécessairement tous les éléments de la WDL d'origine : seuls les éléments modifiés sont nécessaires.
Le nom des fichiers de patchs respecte le format suivant : <Nom>.<WDL>.NNN (exemple : Application.WDL.001, Application.WDL.002, ...).

Fonctionnement des patchs

Un patch est automatiquement chargé lors du chargement de la bibliothèque (fichier WDL) ou de l'exécutable incluant la bibliothèque. Il faut pour cela que le fichier physique correspondant au patch ait le même nom (hors extension) que le fichier correspondant à la bibliothèque.
Ainsi la bibliothèque <Nom>.WDL accepte les patchs du genre <Nom>.WDL.001.
L'exécutable <Nom>.EXE avec WDL intégrée accepte les patchs du genre <Nom>.WDL.001.
Si la bibliothèque ou l'exécutable n'a pas le même nom que le projet, il est nécessaire de modifier le nom physique du patch (sans toucher à l'extension).
Remarque : Par défaut, l'historique des patch est inclus dans le dernier patch réalisé. Seul le dernier patch est nécessaire. Si le patch contient uniquement les dernières corrections effectuées, il est nécessaire de conserver tous les patchs générés à côté de l'exécutable. Il seront tous chargé lors de l'exécution du projet.

Limitations

Les modifications suivantes ne peuvent pas être prises en compte dans un patch et nécessitent une mise à jour complète de l'application :
  • renommage d'un élément du projet,
  • ajout ou suppression d'un membre dans une classe ou une structure,
  • ajout ou suppression d'une valeur dans une énumération,
  • ajout ou suppression d'une option dans une combinaison,
  • ajout ou suppression d'une propriété ou d'une procédure dans une interface,
  • modification d'un alias de type.

Re-création d'un exécutable

Lorsque l'exécutable est recréé (ou la WDL complète), les patchs créés pour les versions précédentes sont ignorés.
Exemple :
Création de l'exécutable version 1 qui contient les fenêtres "Fenêtre1" et "Fenêtre2".Nom du fichier : <NomProjet>.EXE
Création d'un patch 001 corrigeant la fenêtre "Fenêtre1".

Lors de l'exécution de l'application, la fenêtre "Fenêtre1" du patch sera prise en compte.
Nom du fichier : <NomProjet>.WDL.001
Création d'un patch 002 corrigeant la fenêtre "Fenêtre1" et la "Fenêtre2".

Lors de l'exécution de l'application, les fenêtres "Fenêtre1" et "Fenêtre2" du patch seront prises en compte.
Nom du fichier : <NomProjet>.WDL.002
Création de l'exécutable version 2 qui contient les fenêtres "Fenêtre1" et "Fenêtre2".

Cet exécutable ne prend pas en compte les deux patchs précédents. Ces patchs peuvent être supprimés du répertoire d'installation de l'application (aucune suppression automatique n'est effectuée).
Nom du fichier : <NomProjet>.EXE
Création d'un patch 003 corrigeant la fenêtre "Fenêtre1".

Lors de l'exécution de l'application, la fenêtre "Fenêtre1" du patch 003 sera prise en compte.
Nom du fichier : <NomProjet>.WDL.003

Patchs et branches du GDS

Il est possible de créer des patchs à partir d'une branche présente dans le GDS.
Il est recommandé de ne pas mélanger les patchs réalisés dans une branche avec ceux de la version principale.
Pour reporter une modification effectuée dans la version principale, le report doit être réalisé dans les sources de la branche puis le patch doit être généré depuis la branche.
Version minimum requise
  • Version 9
Commentaires
Un ou plusieurs patch
La documentation ne précise pas si seul le "dernier" patch (ayant le plus grand suffixe) est lu ou si tous les patchs depuis la création de l'exécutable sont chargés.
Jean-Pierre
05 nov. 2016
Comment inclure le code d'initialisation du projet dans le patch
Bonsoir, Je ne parviens pas inlcure le code d'initialisation du projet dans le patch. Concrètement j'ai ajouté une déclaration globale dans ce code d'initialisation. J'ai ensuite inséré la fenêtre qui se sert de cette variable et j'ai une erreur signalant que la variable globale n'existe pas.

J'ai essayé d'insérer tous les éléments de la bibliothèque dans le patch, toujours rien. Merci d'avance.
Franck
26 oct. 2016

Dernière modification : 02/05/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale