Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans Visual Studio, le déploiement ClickOnce vous permet de configurer la façon dont une application est mise à jour. Toutefois, si vous souhaitez utiliser et personnaliser des fonctionnalités de déploiement ClickOnce avancées, vous devez accéder au modèle objet de déploiement fourni par System.Deployment.Application. Vous pouvez utiliser les System.Deployment.Application API pour des tâches avancées telles que :
Création d’une option « Mettre à jour maintenant » dans votre application
Téléchargements conditionnels à la demande de différents composants d’application
Mises à jour intégrées directement à l’application
Garantie que l’application cliente est toujours up-to-date
Étant donné que les System.Deployment.Application API fonctionnent uniquement lorsqu’une application est déployée avec la technologie ClickOnce, la seule façon de les déboguer est de déployer l’application à l’aide de ClickOnce, de l’attacher, puis de la déboguer. Il peut être difficile d’attacher le débogueur suffisamment tôt, car ce code s’exécute souvent lorsque l’application démarre et s’exécute avant de pouvoir attacher le débogueur. Une solution consiste à placer des interruptions (ou des arrêts, pour les projets Visual Basic) avant votre code de vérification de mise à jour ou le code à la demande.
La technique de débogage recommandée est la suivante :
Note
La classe ApplicationDeployment et les API de l’espace de noms System.Deployment.Application ne sont pas prises en charge dans .NET Core et .NET 5 et les versions ultérieures. Dans .NET 7, une nouvelle méthode d’accès aux propriétés de déploiement d’application est prise en charge. Pour plus d’informations, consultez les propriétés de déploiement Access ClickOnce dans .NET. .NET 7 ne prend pas en charge l’équivalent des méthodes ApplicationDeployment.
Avant de commencer, vérifiez que les fichiers de symbole (.pdb) et les fichiers sources sont archivés.
Déployez la version 1 de l’application.
Créez une solution vide. Dans le menu Fichier , sélectionnez Nouveau, puis Projet. Dans la boîte de dialogue Nouveau projet , ouvrez le nœud Autres types de projets , puis sélectionnez le dossier Solutions Visual Studio . Dans le volet Modèles , sélectionnez Solution vide.
Ajoutez l’emplacement source archivé aux propriétés de cette nouvelle solution. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud de solution, puis sélectionnez Propriétés. Dans la boîte de dialogue Pages de propriétés , sélectionnez Déboguer les fichiers sources, puis ajoutez le répertoire du code source archivé. Sinon, le débogueur recherche les fichiers sources obsolètes, car les chemins d’accès au fichier source sont enregistrés dans le fichier .pdb . Si le débogueur utilise des fichiers sources obsolètes, un message vous indique que la source ne correspond pas.
Vérifiez que le débogueur peut trouver les fichiers .pdb . Si vous avez déployé les fichiers avec votre application, le débogueur les trouve automatiquement. Il vérifie toujours d'abord à côté de l'assemblage en question. Sinon, vous devez ajouter le chemin d’archivage à votre liste d’emplacements de fichier de symboles.
Ouvrez le volet Outils (ou Déboguer) >Options, puis développez la section Tous les paramètres>Débogage>Symboles>Emplacements de recherche. Ajoutez, modifiez l’ordre ou supprimez des éléments de la liste des emplacements du fichier de symboles (.pdb ).
Ouvrez la boîte de dialogue Outils (ou Déboguer) >Options, puis développez la sectionSymboles>. Ajoutez, modifiez l’ordre ou supprimez des éléments de la liste des emplacements de recherche du fichier de symboles (.pdb ).
Déboguer ce qui se passe entre les appels de méthode
CheckForUpdateetDownload/Update.Par exemple, le code de mise à jour peut être le suivant :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If My.Application.Deployment.IsNetworkDeployed Then If (My.Application.Deployment.CheckForUpdate()) Then My.Application.Deployment.Update() Application.Restart() End If End If End SubDéployez la version 2.
Essayez d’attacher le débogueur à l’application version 1 pendant qu’il télécharge une mise à jour pour la version 2. Vous pouvez également utiliser la
System.Diagnostics.Debugger.Breakméthode ou simplementStopen Visual Basic. Bien sûr, vous ne devez pas laisser ces appels de méthode dans le code de production.Par exemple, supposons que vous développez une application Windows Forms et que vous disposez d’un gestionnaire d’événements pour cette méthode avec la logique de mise à jour dans celle-ci. Pour déboguer cela, attachez simplement avant que le bouton soit enfoncé, puis définissez un point d’arrêt (vérifiez que vous ouvrez le fichier archivé approprié et définissez le point d’arrêt là-bas).
Utilisez la IsNetworkDeployed propriété pour appeler les System.Deployment.Application API uniquement lorsque l’application est déployée ; les API ne doivent pas être appelées pendant le débogage dans Visual Studio.