Guide Déploiement .NET avec ClickOnce en PDF (Avancé)
Déployez votre application .NET avec ClickOnce. ClickOnce est un framework de déploiement Microsoft intégré à Visual Studio permettant la distribution et la mise à jour automatique d'applications clientes .NET via un installeur web/locale et des manifestes XML. La maîtrise de ClickOnce automatise les mises à jour, gère les dépendances CLR et permet de signer les manifestes pour garantir l'intégrité des publications ; ce PDF fournit les explications techniques et les extraits XML nécessaires pour appliquer ces opérations et télécharger les fichiers de déploiement. Le guide précise la compatibilité avec Visual Studio 2019 et 2022 et traite l'interopérabilité avec .NET Core / .NET 5+ lorsque cela est pris en charge via les outils et configurations adaptés.
🎯 Ce que vous allez apprendre
- Publication via l'assistant Publish (Publish Wizard) — configuration de l'emplacement de publication, de l'URL de téléchargement et du mode en ligne/hors-ligne depuis Visual Studio. Préparation du répertoire de publication, génération de
publish.htmetsetup.exe, choix du support (répertoire UNC, FTP, site web, CD/DVD) et prise en compte des contraintes de distribution et des types MIME serveur. - Structure des fichiers ClickOnce et mise à disposition — identification et rôle des fichiers produits (
.application, dossierApplication Files, manifestes.manifestet fichiers.deploy). Organisation du contenu à héberger, configuration des types MIME sur un serveur non‑IIS et création du lien de téléchargement pour garantir le lancement en un clic. - Gestion des mises à jour et stratégie de versioning — paramétrage des recherches de mises à jour, définition d'une version minimale requise et publication incrémentale des dossiers
Application Files. Automatisation d'un flux de publication via Publish Now et compréhension du mécanisme de hash dans le manifeste qui détermine les fichiers téléchargés lors d'une mise à jour. - Support multi‑version du .NET Framework et CLR — édition du manifeste ClickOnce (
<compatibleFrameworks>) et du fichierApp.config(<startup>) pour déclarer plusieurs runtimes. Extraits XML montrant comment ajouter des entrées<framework targetVersion="4.6" />et gérer la compatibilité ascendante entre versions du CLR et du Framework. - Signature et sécurité des manifestes — différences entre certificat auto-signé et certificat émis, impact sur la confiance et la validation des mises à jour. Configuration de la signature dans l'onglet Signing du projet, import d'un certificat depuis le magasin ou depuis un fichier, et explication de l'intérêt de la signature pour l'intégrité des mises à jour. Pour les scénarios avancés, utilisation de l'outil
mage.exeen complément pour générer/modifier les manifestes en ligne de commande et automatiser la signature. - Personnalisation avancée : installeur et classe installeur — création d'un installeur personnalisé et liaison d'une classe d'installation aux événements de progression et d'installation, avec exemples de conception et liaison à l'interface pour exécuter des actions pendant la progression.
Configuration des types MIME sur le serveur
Les erreurs 404 ou le téléchargement partiel proviennent fréquemment d'un mauvais mappage MIME. Vérifier et ajouter les types MIME appropriés sur le serveur web (IIS, Apache, Nginx ou hébergement mutualisé) évite les échecs de récupération des fichiers .application et .manifest. Voir la section « Résolution des erreurs de déploiement courantes » pour une liste complète des types MIME recommandés.
.application.manifest.deploy
📑 Sommaire du document
- Introduction
- Mise en place
- Publication de l'application ClickOnce
- Mise à disposition de l'application ClickOnce
- Paramètres basiques
- Gestion des mises à jour
- Utilisation avancée
- Support de différentes versions du .NET Framework
💡 Pourquoi choisir ce cours ?
Samuel B fournit un guide structuré, du déploiement élémentaire aux modifications avancées du manifeste et du App.config, avec extraits XML pratiques. L'auteur illustre l'usage de l'assistant Publish (Visual Studio) et détaille la chaîne de fichiers générée (publish.htm, setup.exe, .application, dossier Application Files) ainsi que des conseils opérationnels sur les types MIME, la signature des manifestes et la création d'un installeur personnalisé, utiles pour des scénarios réels d'administration et de maintenance. Une comparaison fonctionnelle avec Windows Installer aide à choisir la stratégie de déploiement selon le contexte.
👤 À qui s'adresse ce cours ?
- Public cible : développeurs .NET desktop (C# ou VB.NET), administrateurs applicatifs responsables de la publication et de la maintenance d'applications clientes sur postes Windows en entreprise.
- Prérequis : connaissance du développement .NET et de Visual Studio (projets, onglet Publish), notions d'XML (édition de manifestes et
App.config), compréhension des versions CLR/.NETet notions de certificats numériques.
❓ Foire Aux Questions (FAQ)
Peut-on déclarer plusieurs runtimes CLR dans un manifeste ClickOnce ? Oui. Le manifeste ClickOnce supporte la balise <compatibleFrameworks> contenant des éléments <framework targetVersion="..." />. Il faut synchroniser ces entrées avec <startup> dans le App.config pour assurer la compatibilité.
Quelle est la différence entre un certificat auto-signé et un certificat émis pour la signature ClickOnce ? Un certificat auto-signé authentifie techniquement l'origine mais n'établit pas la confiance utilisateur finale ; un certificat émis par une autorité atteste de l'identité de l'éditeur et renforce la confiance lors de l'installation et des mises à jour.
Comparatif : ClickOnce vs Windows Installer (MSI)
ClickOnce privilégie la simplicité de déploiement et les mises à jour automatiques par l'utilisateur final : installation en un clic, mises à jour incrémentales pilotées par les manifestes et gestion aisée des dépendances .NET. En revanche, Windows Installer (MSI) offre un contrôle plus fin sur l'installation système, l'intégration aux services, les privilèges élevés et la personnalisation avancée de l'interface d'installation. Pour une déploiement application WPF simple et des mécanismes de mise à jour automatique .NET, ClickOnce est souvent préféré ; pour les besoins d'installation centralisée, de services systèmes ou de configurations complexes, MSI reste plus adapté. Le choix dépend des exigences opérationnelles, du niveau d'intégration au système et des contraintes de sécurité.
Résolution des erreurs de déploiement courantes
Les problèmes fréquents incluent des erreurs 404 lors du téléchargement des fichiers ClickOnce, des échecs de signature, et des incompatibilités runtime. Vérifier les manifestes, la signature et les types MIME sur le serveur évite la majorité des incidents. Les éléments ci‑dessous aident à diagnostiquer et corriger ces erreurs.
Types MIME recommandés (IIS et serveurs web)
.application→application/x-ms-application.manifest→application/x-ms-manifest.deploy→application/octet-stream(ouapplication/x-msdownloadselon l'hébergement).xbap→application/x-ms-xbap(pour XAML Browser Applications)setup.exe→application/x-msdownload- Fichiers binaires (.dll, .exe) →
application/octet-stream
Sur IIS, ajouter ces mappings via le module "MIME Types" ou via web.config (<staticContent>) si l'accès direct au serveur est restreint. Après modification, vider les caches du navigateur et vérifier les autorisations et l'accès public au répertoire de publication.
Signes d'erreurs et actions
- Erreur 404 on
.applicationor.manifest: vérifier les types MIME et le chemin d'hébergement. - Échec de signature : contrôler la validité du certificat, la chaîne de confiance et la présence du certificat sur le serveur/le poste de build.
- Incompatibilité runtime : valider les entrées
<compatibleFrameworks>et leApp.config(<startup>).
Utilisation de Mage.exe (Manifest Generation and Editing Tool)
mage.exe permet de créer, modifier et signer les manifestes ClickOnce en ligne de commande, utile pour automatiser des pipelines CI/CD ou effectuer des ajustements avancés avant publication. Exemple d'usage pour signer un manifeste :
mage -Sign MyApp.application -CertFile "monCertificat.pfx" -Password "***"
Autres opérations courantes : création d'un manifeste d'application, mise à jour des dépendances et génération d'un manifeste de déploiement. Intégrer mage.exe dans des scripts permet de standardiser les publications et d'éviter les étapes manuelles dans Visual Studio.
Notes sur Visual Studio 2022 et .NET 5/6/7+
Visual Studio 2022 introduit des améliorations de l'outil de publication et un meilleur support des projets SDK-style. Pour les projets .NET 5, .NET 6 et supérieurs, ClickOnce est pris en charge via les outils de publication modernes, mais nécessite parfois des ajustements de projet (MSBuild properties) et des extensions spécifiques pour activer toutes les fonctionnalités ClickOnce. Vérifier la documentation de Visual Studio 2022 pour activer ClickOnce sur les projets SDK-style et tester le scénario de tutoriel ClickOnce C# en local avant publication. Pour les solutions WPF ciblant .NET 6+, valider la compatibilité des dépendances natives et automatiser la signature pour garantir la conformité avec les politiques d'entreprise.
Mots-clés intégrés : tutoriel ClickOnce C#, déploiement application WPF, mise à jour automatique .NET, certificat de signature de code.