Partager via


Déploiement et débogage d’applications UWP

Cet article vous guide tout au long des étapes permettant de cibler différents cibles de déploiement et de débogage.

Microsoft Visual Studio vous permet de déployer et de déboguer vos applications de plateforme Windows universelle (UWP) sur un large éventail d’appareils Windows 10. Visual Studio gère le processus de génération et d’inscription de l’application sur l’appareil cible.

Sélection d’une cible de déploiement

Pour choisir une cible, accédez à la liste déroulante cible de débogage en regard du bouton Démarrer le débogage et choisissez la cible dans laquelle vous souhaitez déployer votre application. Une fois la cible sélectionnée, sélectionnez Démarrer le débogage (F5) pour déployer et déboguer sur cette cible, ou sélectionnez Ctrl+F5 pour simplement déployer sur cette cible.

liste des cibles des appareils de débogage

  • Le simulateur déploie l’application dans un environnement simulé sur votre ordinateur de développement actuel. Cette option est disponible uniquement si la version minimale de la plateforme cible , est inférieure ou égale au système d’exploitation de votre ordinateur de développement.
  • L’ordinateur local déploie l’application sur votre ordinateur de développement actuel. Cette option est disponible uniquement si la version minimale de la plateforme cible , est inférieure ou égale au système d’exploitation de votre ordinateur de développement.
  • L’ordinateur distant vous permet de spécifier une cible distante pour déployer l’application. Vous trouverez plus d’informations sur le déploiement sur une machine distante dans la spécification d’un appareil distant.
  • 'appareil déploie l’application sur un appareil connecté USB. L’appareil doit être déverrouillé par le développeur et avoir l’écran déverrouillé.
  • Un émulateur cible démarrera et déploiera l'application sur un émulateur avec la configuration spécifiée dans le nom. Les émulateurs sont disponibles uniquement sur les machines avec Hyper-V activé, fonctionnant sous Windows 8.1 ou une version ultérieure.

Débogage d’applications déployées

Visual Studio peut également joindre n’importe quel processus d’application UWP en cours d’exécution en sélectionnant déboguer, puis Attacher au processus. L’attachement à un processus en cours d’exécution ne nécessite pas le projet Visual Studio d’origine, mais le chargement des symboles du processus vous aidera considérablement lors du débogage d’un processus pour lequel vous n’avez pas le code d’origine.

En outre, tout package d’application installé peut être attaché et débogué en sélectionnant Déboguer, Autre, puis Déboguer les packages d’application installés.

Boîte de dialogue Déboguer le package d’application installé

La sélection de Ne pas lancer, mais déboguer mon code quand il démarre entraîne l’attachement du débogueur Visual Studio à votre application UWP lorsque vous la lancez à un moment personnalisé. Il s’agit d’un moyen efficace de déboguer des chemins de contrôle à partir de différentes méthodes de lancement, telles que l’activation de protocole avec des paramètres personnalisés.

Les applications UWP peuvent être développées et compilées sur Windows 8.1 ou version ultérieure, mais nécessitent l’exécution de Windows 10. Si vous développez une application UWP sur un PC Windows 8.1, vous pouvez déboguer à distance une application UWP s’exécutant sur un autre appareil Windows 10, à condition que l’ordinateur hôte et l’ordinateur cible se trouvent sur le même réseau local. Pour ce faire, téléchargez et installez les Outils à distance de pour Visual Studio sur les deux ordinateurs. La version installée doit correspondre à la version existante de Visual Studio que vous avez installée, et l’architecture que vous sélectionnez (x86, x64) doit également correspondre à celle de votre application cible.

Disposition de package

À compter de Visual Studio 2015 Update 3, nous avons ajouté l’option permettant aux développeurs de spécifier le chemin de disposition de leurs applications UWP. Cela détermine l’emplacement où la disposition du package est copiée sur le disque lorsque vous générez votre application. Par défaut, cette propriété est définie par rapport au répertoire racine du projet. Si vous ne modifiez pas cette propriété, le comportement reste le même que pour les versions précédentes de Visual Studio.

Cette propriété peut être modifiée dans les propriétés de débogage du projet.

Si vous souhaitez inclure tous les fichiers de disposition dans votre package lorsque vous créez un package pour votre application, vous devez ajouter la propriété <IncludeLayoutFilesInPackage>true</IncludeLayoutFilesInPackage>du projet.

Pour ajouter cette propriété :

  1. Cliquez avec le bouton droit sur le projet, puis sélectionnez décharger le projet.
  2. Cliquez avec le bouton droit sur le projet, puis sélectionnez Modifier [nom_projet].xxproj (.xxproj change en fonction du langage du projet).
  3. Ajoutez la propriété, puis rechargez le projet.

Spécification d’un appareil distant

C# et Microsoft Visual Basic

Pour spécifier une machine distante pour les applications C# ou Microsoft Visual Basic, sélectionnez machine distante dans la liste déroulante cible de débogage. La boîte de dialogue Connexions à distance s’affiche, ce qui vous permet de spécifier une adresse IP ou de sélectionner un appareil découvert. Par défaut, le mode d’authentification universelle est sélectionné. Pour déterminer le mode d’authentification à utiliser, consultez les modes d’authentification.

Boîte de dialogue Connexions à distance

Pour revenir à cette boîte de dialogue, vous pouvez ouvrir les propriétés du projet et aller à l’onglet Déboguer. À partir de là, sélectionnez Rechercher à côté de Machine distante :

onglet Débogage

Pour déployer une application sur un PC distant pré-Creators Update, vous devez également télécharger et installer visual Studio Remote Tools sur le PC cible. Pour obtenir des instructions complètes, consultez les instructions du PC distant . Toutefois, à partir du PC Creators Update, il prend également en charge le déploiement à distance.

C++ et JavaScript

Pour spécifier une cible de machine distante pour une application UWP C++ ou JavaScript :

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis cliquez sur Propriétés.
  2. Accédez à Paramètres de débogage, puis, sous Débogueur pour lancer, sélectionnez Machine distante.
  3. Entrez le nom de l’ordinateur (ou cliquez sur Localiser pour en trouver un), puis définissez la propriété Type d’authentification .

Pages de propriétés de débogage

Une fois la machine spécifiée, vous pouvez sélectionner Machine Distante dans la liste déroulante cible de débogage pour revenir à cette machine spécifiée. Une seule machine distante peut être sélectionnée à la fois.

Instructions relatives au PC distant

Remarque

Ces instructions sont uniquement requises pour les versions antérieures de Windows 10. À partir de Creators Update, un PC peut être traité comme une Xbox. Autrement dit, en activant la découverte de périphériques dans le menu Mode Développeur du PC et en utilisant l’authentification universelle pour jumeler avec un code PIN et se connecter au PC.

Pour effectuer un déploiement sur un PC distant pré-Creators Update, le PC cible doit avoir installé Visual Studio Remote Tools. Le PC distant doit également exécuter une version de Windows supérieure ou égale à la propriété de la version cible minimale de la plateforme de vos applications . Une fois que vous avez installé les outils distants, vous devez lancer le débogueur distant sur le PC cible.

Pour ce faire, recherchez débogueur distant dans le menu Démarrer, ouvrez-le et, si vous y êtes invité, autorisez le débogueur à configurer vos paramètres de pare-feu. Par défaut, le débogueur démarre avec l’authentification Windows. Cela nécessite des informations d’identification utilisateur si l’utilisateur connecté n’est pas le même sur les deux PC.

Pour le remplacer par aucuned’authentification , dans ledu débogueur distant , accédez à Outils -Options, puis définissez-le sur Aucund’authentification. Une fois le débogueur distant configuré, vous devez également vous assurer que vous avez défini l’appareil hôte sur Mode Développeur. Après cela, vous pouvez déployer à partir de votre ordinateur de développement.

Pour plus d’informations, consultez la page du Centre de téléchargement Visual Studio.

Passage d’arguments de ligne de commande pour le débogage

Dans Visual Studio 2019, vous pouvez fournir des arguments de débogage via la ligne de commande en démarrant le débogage d'applications UWP. Vous pouvez accéder aux arguments de débogage de ligne de commande à partir du paramètre args dans la méthode OnLaunched de la classe Application. Pour spécifier des arguments de débogage de la ligne de commande, ouvrez les propriétés du projet et accédez à l’onglet Débogage.

Remarque

Ceci est disponible dans Visual Studio 2017 (version 15.1) pour C#, VB et C++. JavaScript est disponible dans les versions ultérieures. Les arguments de débogage de ligne de commande sont disponibles pour tous les types de déploiement, à l’exception du simulateur.

Pour les projets UWP C# et VB, vous verrez un champ d'arguments de ligne de commande : sous les options de démarrage .

Arguments de ligne de commande

Pour les projets UWP C++ et JS, vous verrez le champ Arguments de ligne de commande dans les Propriétés de débogage .

Capture d’écran des pages de propriété de l'application 4 avec les propriétés de configuration où l'option Débogage > est sélectionnée, montrant la propriété Arguments de ligne de commande listée dans le tableau.

Une fois que vous avez spécifié les arguments de ligne de commande, vous pouvez accéder à la valeur de l’argument dans la méthode OnLaunched de l’application. L'objet LaunchActivatedEventArgsargs aura une propriété Arguments avec la valeur définie sur le texte dans le champ Arguments de ligne de commande.

Capture d’écran des arguments de ligne de commande pour C++ et JS.

Modes d’authentification

Il existe trois modes d’authentification pour le déploiement d’ordinateurs distants :

  • Universel (protocole non chiffré) : utilisez ce mode d'authentification chaque fois que vous effectuez un déploiement sur un appareil distant. Actuellement, il s’agit des appareils IoT, des appareils Xbox et des appareils HoloLens, ainsi que des PC avec Windows Version 1703 (Creators Update) ou une version ultérieure. Le protocole universel (non chiffré) ne doit être utilisé que sur les réseaux approuvés. La connexion de débogage est vulnérable aux utilisateurs malveillants qui peuvent intercepter et modifier les données transmises entre le développement et l’ordinateur distant.
  • Windows : ce mode d’authentification est destiné uniquement à être utilisé pour un PC distant (ordinateur de bureau ou ordinateur portable) exécutant visual Studio Remote Tools. Utilisez ce mode d’authentification lorsque vous avez accès aux informations d’identification de l’utilisateur connecté de l’ordinateur cible. Il s’agit du canal le plus sécurisé pour le déploiement à distance.
  • Aucun : ce mode d’authentification est destiné uniquement à être utilisé pour un PC distant (ordinateur de bureau ou ordinateur portable) exécutant visual Studio Remote Tools. Utilisez ce mode d’authentification lorsque vous avez configuré une machine de test dans un environnement avec un compte de test connecté et que vous ne pouvez pas entrer les informations d’identification. Assurez-vous que les paramètres du débogueur distant sont définis pour n'accepter aucune authentification.

Options avancées de déploiement à distance

À compter de la publication de Visual Studio 2015 Update 3 et de la mise à jour anniversaire Windows 10, il existe de nouvelles options avancées de déploiement à distance pour certains appareils Windows 10. Vous trouverez les options avancées de déploiement à distance dans le menu Déboguer pour les propriétés du projet.

Les nouvelles propriétés sont les suivantes :

  • Type de déploiement
  • Chemin d’inscription du paquet
  • Conserver tous les fichiers sur l’appareil, même ceux qui ne font plus partie de votre mise en page

Spécifications

Pour utiliser les options de déploiement à distance avancées, vous devez répondre aux exigences suivantes :

  • Visual Studio 2015 Update 3 ou une version ultérieure de Visual Studio est installé avec Windows 10 Tools 1.4.1 ou version ultérieure (qui inclut le KIT SDK de mise à jour anniversaire Windows 10) Nous vous recommandons d’utiliser la dernière version de Visual Studio avec des mises à jour pour vous assurer que vous bénéficiez de toutes les fonctionnalités de développement et de sécurité les plus récentes.
  • Cibler un appareil Xbox à distance avec la mise à jour anniversaire de Windows 10 ou un PC avec la mise à jour Windows 10 Creators Update.
  • Utiliser le mode d’authentification universelle

Pages de propriétés

Pour une application UWP C# ou Visual Basic, la page des propriétés se présente comme suit.

propriétés de CS ou de VB

Pour une application UWP C++, la page des propriétés se présente comme suit.

propriétés Cpp

Copier des fichiers sur l’appareil

Copier des fichiers vers l’appareil transfère physiquement les fichiers sur le réseau vers l’appareil distant. Il copiera et enregistrera la disposition du package qui est générée vers le chemin d'accès du dossier Layout. Visual Studio conserve les fichiers copiés sur l’appareil synchronisés avec les fichiers de votre projet Visual Studio ; Toutefois, il existe une option permettant de conserver tous les fichiers sur l’appareil, même ceux qui ne font plus partie de votre disposition. La sélection de cette option signifie que tous les fichiers qui ont été précédemment copiés sur l’appareil distant, mais qui ne font plus partie de votre projet, restent sur l’appareil distant.

Le chemin d’inscription package spécifié lorsque vous copier des fichiers sur l’appareil est l’emplacement physique sur l’appareil distant où les fichiers sont copiés. Ce chemin d’accès peut être spécifié comme un chemin relatif quelconque. L’emplacement où les fichiers sont déployés est relatif à une racine de fichiers de développement qui varie en fonction de l’appareil cible. La spécification de ce chemin est utile pour plusieurs développeurs partageant le même appareil et travaillant sur des packages avec une variance de build.

Remarque

Copier des fichiers sur l’appareil est actuellement pris en charge sur Xbox exécutant la mise à jour anniversaire Windows 10 et les PC exécutant Windows 10 Creators Update.

Sur l’appareil distant, la disposition est copiée à l’emplacement par défaut suivant : \\MY-DEVKIT\DevelopmentFiles\PACKAGE-REGISTRATION-PATH

Enregistrer la configuration du réseau

Lorsque vous choisissez d'enregistrer la disposition à partir du réseau, vous pouvez créer votre disposition de package sur un partage réseau, puis enregistrer la disposition sur l'appareil distant directement depuis le réseau. Cela nécessite que vous spécifiiez un chemin d'accès au dossier de mise en page (un partage réseau) accessible à partir de l’appareil distant. La propriété de chemin d’accès du dossier Layout est le chemin d’accès défini par rapport au PC exécutant Visual Studio, tandis que la propriété du chemin d’inscription du package est le même chemin, mais spécifiée par rapport à l’appareil distant.

Pour enregistrer correctement la disposition à partir du réseau, vous devez d’abord rendre le chemin d’accès du dossier Layout un dossier réseau partagé. Pour ce faire, cliquez avec le bouton droit sur le dossier dans l’Explorateur de fichiers, sélectionnez Partager avec > des personnes spécifiques, puis choisissez les utilisateurs avec lesquels vous souhaitez partager le dossier. Lorsque vous essayez d’inscrire la disposition à partir du réseau, vous êtes invité à entrer des informations d’identification pour vous assurer que vous vous inscrivez en tant qu’utilisateur ayant accès au partage.

Pour obtenir de l’aide, consultez les exemples suivants :

  • Exemple 1 (dossier de disposition local, accessible en tant que partage réseau) :

    • Chemin du dossier de mise en page = D:\Layouts\App1
    • Chemin d’inscription du package = \\NETWORK-SHARE\Layouts\App1
  • Exemple 2 (dossier de disposition réseau) :

    • Chemin du dossier de mise en page = \\NETWORK-SHARE\Layouts\App1
    • Chemin d’inscription du package = \\NETWORK-SHARE\Layouts\App1

Lorsque vous inscrivez la disposition à partir du réseau pour la première fois, vos informations d’identification sont mises en cache sur l’appareil cible afin que vous n’ayez pas besoin de vous connecter à plusieurs reprises. Pour supprimer les informations d’identification mises en cache, vous pouvez utiliser l’outilWinAppDeployCmd.exe du Kit de développement logiciel (SDK) Windows 10 avec la commande deletecreds .

Vous ne pouvez pas sélectionner conserver tous les fichiers sur l’appareil lorsque vous inscrivez la disposition à partir du réseau, car aucun fichier n’est copié physiquement sur l’appareil distant.

Remarque

Inscrire la disposition à partir du réseau est actuellement prise en charge sur Xbox exécutant la mise à jour anniversaire Windows 10 et les PC exécutant Windows 10 Creators Update.

Sur l’appareil distant, la disposition est inscrite à l’emplacement par défaut suivant en fonction de la famille d’appareils : Xbox: \\MY-DEVKIT\DevelopmentFiles\XrfsFiles - il s'agit d'un lien symbolique vers le chemin d’inscription du package. Le PC n’utilise pas de lien symbolique et inscrit directement le chemin d’inscription du package.

Options de débogage

Sur Windows 10, les performances de démarrage des applications UWP sont améliorées en lançant de manière proactive, puis en suspendant les applications dans une technique appelée prélancement. De nombreuses applications n’auront pas besoin de faire quelque chose de spécial pour fonctionner dans ce mode, mais certaines applications peuvent avoir besoin d’ajuster leur comportement. Pour vous aider à déboguer des problèmes dans ces chemins de code, vous pouvez commencer à déboguer l’application à partir de Visual Studio en mode prélancement.

Le débogage est pris en charge à partir d’un projet Visual Studio (déboguer ->Autres cibles de débogage ->Déboguer l’application Windows universelle prélancement) et pour les applications déjà installées sur la machine (déboguer ->autres cibles de débogage -> package d’application installé de débogage en sélectionnant la case à cocher Activer l’application avec la case à cocher Prélaunch). Pour plus d'informations, consultez Déboguer le prélancement UWP.

Vous pouvez définir les options de déploiement suivantes sur la page de propriétés Débogage du projet de démarrage :

  • Autoriser la boucle locale du réseau

    Pour des raisons de sécurité, une application UWP installée de la manière standard n’est pas autorisée à passer des appels réseau à l’appareil sur lequel il est installé. Par défaut, le déploiement de Visual Studio crée une exemption de cette règle pour l’application déployée. Cette exemption vous permet de tester les procédures de communication sur un seul ordinateur. Avant de soumettre votre application au Microsoft Store, vous devez tester votre application sans l’exemption.

    Pour supprimer l’exemption de boucle locale pour l’application :

    • Dans la page de propriétés C# et Visual Basic Déboguer, décochez la case Autoriser la bouclage du réseau local.
    • Dans la page de propriétés Débogage JavaScript et C++, réglez la valeur Autoriser la boucle de réseau local sur Non.
  • Ne pas lancer, mais déboguer mon code au démarrage/ Lancer l’application

    Pour configurer le déploiement pour démarrer automatiquement une session de débogage lors du lancement de l’application :

    • Sur la page des propriétés C# et Visual Basic Déboguer, activez la case à cocher Ne pas lancer, mais déboguer mon code lors de son démarrage.
    • Dans la page de propriétés JavaScript et C++ Débogage, définissez la valeur Lancer l’application sur Oui.

Symboles

Les fichiers de symboles contiennent diverses données très utiles lors du débogage du code, tels que des variables, des noms de fonction et des adresses de point d’entrée, ce qui vous permet de mieux comprendre les exceptions et l’ordre d’exécution de la pile d’appels. Les symboles de la plupart des variantes de Windows sont disponibles via le serveur de symboles Microsoft ou peuvent être téléchargés pour des recherches hors connexion plus rapides lors du téléchargement des packages de symboles Windows.

Pour définir les options de symboles pour Visual Studio, sélectionnez Outils > Options, puis accédez à Débogage > Symboles dans la fenêtre de boîte de dialogue.

boîte de dialogue Options

Pour charger des symboles dans une session de débogage avec winDbg, définissez la variable de sympathie sur l’emplacement du package de symboles. Par exemple, l’exécution de la commande suivante charge les symboles à partir du serveur de symboles Microsoft, puis les met en cache dans le répertoire C :\Symbols :

.sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
.reload

Vous pouvez ajouter d’autres chemins à l’aide du ‘;’ délimiteur ou utiliser la .sympath+ commande. Pour des opérations de symboles plus avancées qui utilisent WinDbg, consultez Symboles publics et privés.

WinDbg

WinDbg est un débogueur puissant fourni dans le cadre de la suite Outils de débogage pour Windows, qui est inclus dans le Kit de développement logiciel (SDK) Windows. L’installation du Kit de développement logiciel (SDK) Windows vous permet d’installer les outils de débogage pour Windows en tant que produit autonome. Bien qu’il soit très utile pour le débogage du code natif, nous ne recommandons pas WinDbg pour les applications écrites en code managé ou HTML5.

Pour utiliser WinDbg avec des applications UWP, vous devez d’abord désactiver process lifetime Management (PLM) pour votre package d’application à l’aide de PLMDebug, comme décrit dans Les outils de test et de débogage pour la gestion de la durée de vie des processus (PLM).

plmdebug /enableDebug [PackageFullName] ""C:\Program Files\Debugging Tools for Windows (x64)\WinDbg.exe\" -server npipe:pipe=test"

Contrairement à Visual Studio, la plupart des fonctionnalités principales de WinDbg s’appuient sur la fourniture de commandes à la fenêtre de commandes. Les commandes fournies vous permettent d’afficher l’état d’exécution, d’examiner les vidages sur incident en mode utilisateur et de déboguer dans différents modes.

L’une des commandes les plus populaires dans WinDbg est !analyze -vutilisée pour récupérer une quantité détaillée d’informations sur l’exception actuelle, notamment :

  • FAULTING_IP : pointeur d’instruction au moment de l’erreur
  • EXCEPTION_RECORD : adresse, code et indicateurs de l’exception actuelle
  • STACK_TEXT : trace de pile antérieure à l’exception

Pour obtenir la liste complète de toutes les commandes WinDbg, consultez Commandes du débogueur.