Est-il possible de déployer une application Delphi native avec ClickOnce
-
09-06-2019 - |
Question
Est-il possible de déployer une application Delphi native avec ClickOnce sans un exe stub C# qui serait utilisé pour lancer l'application Delphi ?
La même question s'applique à VB6, C++ et autres applications Windows natives.
La solution
Personnellement, je crée mon propre mécanisme pour lancer le processus de mise à jour automatique lorsque l'horodatage de mon application n'est pas synchronisé avec le serveur.Ce n'est pas trop difficile, mais ce n'est pas une tâche simple.
À propos, pour Delphi, vous pouvez utiliser une aide tierce :
http://www.tmssoftware.com/site/wupdate.asp
MIS À JOUR:
Pour ma mise en œuvre :
MyApp.EXE fonctionnera dans 3 modes différents
MyApp.EXE sans aucun argument.Cela démarrera généralement l’application.
1.1 La toute première chose qu'il fait est de valider son propre temps de fichier avec le serveur.
1.2 Si une mise à jour est requise, le fichier mis à jour sera téléchargé dans le fichier nommé "MyApp-YYYY-MM-DD-HH-MM-SS.exe".
1.3 Ensuite, il invoque "MyApp-YYYY-MM-DD-HH-MM-SS.exe" avec l'argument de commande
MyApp-YYYY-MM-DD-HH-MM-SS.exe --update MyApp.EXE
1.4 Terminez cette application.
1.5 Si aucune mise à jour n'est requise, l'application démarrera normalement à partir de la version 1.1.
MyApp.EXE --mettre à jour "NOM DE FICHIER".
2.1 Essayez de vous copier dans "FILENAME" toutes les 100 ms jusqu'à succès.
2.2 Invoquez "FILENAME" en cas de succès
2.3 Invoquez "FILNAME --delete MyApp-YYYY-MM-DD-HH-MM-SS.exe" pour se supprimer.
2.4 Terminer
MyApp.EXE --supprimer "NOM DE FICHIER"
3.1 Essayez de supprimer le fichier "FILENAME" toutes les 500 ms jusqu'à succès.
3.2 Terminer
J'utilise déjà ce schéma pour mon application depuis 7 ans et il fonctionne bien.Il peut être assez pénible de déboguer lorsque les choses tournent mal, car les étapes impliquent de nombreux processus.Je vous suggère d'effectuer de nombreuses journaux de trace pour permettre un dépannage plus simple.
Bonne chance
Autres conseils
Non, le point d'entrée de votre application doit être du code géré.
Cela vient d'un article de blog par Brian Noyes, l'un des principaux auteurs de ClickOnce et auteur de Déploiement de clients intelligents avec ClickOnce.
Si votre application est VRAIMENT héritée (c'est-à-direVB6, MFC, ATL, etc.), comme dans un exécutable de code non managé, alors non, vous ne pouvez pas le déployer en tant qu'exécutable via ClickOnce.
La solution de contournement acceptée semble être un exe de stub de code géré qui lance l'exe principal.
Je ne suis pas sûr à 100 % si cela peut être accompli sans le talon, mais cet article peut fournir un aperçu :