Bonjour,
DNN possède en effet un mécanisme d'exécution automatique de scripts de maj.
Voilà comment il fonctionne:
quand dnn s'apprête à installer une PA, i vérifie d'une part la présence de tous les fichiers de type "Providers/DataProviders/SqlDataProvider/xx.xx.xx.sqldataprovider" qui constituent l'ensemble des scripts de maj dispo ordonnés par numéro de version correspondant au nom du fichier.
D'autre part, il compare la version du module déjà installée en base avec celle déclarée dans la PA. Cela lui donne l'ensemble des scripts à appliquer.
Enfin, pour chacun des scripts appliqués, il vérifie également si module implémente l'interface IUpgradeable, auquel cas la méthode correspondante est appelée avec le numéro de la montée de version en court.
Remarque technique: Depuis quelques temps, le mécanisme d'upgrade par IUpgradeable est relayé par celui des messages différés DNN; comme la mise à jour de la dll déclanche le recyclage de l'application, il est dangereux de démarrer l'exécution d'une méthode dont le temps d'exécution est inconnu et donc on ne sait pas si elle pourra s'achever. L'appel direct est donc remplacé par la génération d'un message contenant l'instruction de cet appel, qui est remis et traité au prochain démarrage de l'application.
Enfin concernant la désinstallation, le fichier attendu est uninstall.sqldataprovider et contrairement aux fichiers de maj, il est attendu à la racine du module (ne me demandez pas pourquoi)