Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Déboguer des applications dans Blend

Si votre application Blend for Visual Studio ne fonctionne pas comme prévu ou si des erreurs se produisent lorsque vous tentez de la générer, c’est qu’elle comporte un bogue possible. Il est parfois difficile de trouver l’origine d’un bogue ou son emplacement dans l’application, mais cela permet de comprendre à quels types de bogues vous pouvez avoir affaire.

Lorsque vous générez votre application, toute erreur de syntaxe apparaît dans l’onglet Erreurs du panneau Résultats de Blend, ou dans le panneau Liste d’erreurs de Visual Studio.

Des erreurs de syntaxe se produisent si votre code XAML (Extensible Application Markup Language) ne suit pas les règles de mise en forme du langage. La description de l’erreur peut vous aider à la résoudre. Elle spécifie le nom du fichier et le numéro de ligne où l’erreur se produit. Certaines causes courantes d’erreurs de syntaxe se présentent comme suit :

  • Un mot clé n’a pas été correctement orthographié ou la casse est erronée.

  • Des guillemets sont manquants autour de chaînes de texte.

  • Il manque une balise de fermeture à un élément XAML.

  • Il existe un élément XAML à un emplacement non autorisé. Evitez ces erreurs en modifiant vos documents dans le mode Création de Blend, ou dans Visual Studio.

  • Dans un fichier de code, un appel de fonction ou de méthode ne contient pas les paramètres requis. Par exemple, la méthode MessageBox.Show() doit posséder au moins un paramètre, tel qu’une chaîne, MessageBox.Show("Hello").

  • Dans un fichier de code, une variable d’un type est affectée à un type différent. Par exemple, la méthode MessageBox.Show() peut posséder un argument de type string, mais pas de type integer.

  • Dans C#, une méthode qui ne nécessite pas d’arguments ne doit pas posséder d’accolades à la fin. Par exemple, this.InitializeComponent; entraîne une erreur de syntaxe, car la ligne correcte est this.InitializeComponent();.

Pour plus d'informations sur la syntaxe XAML, voir les rubriques d'aperçu général des contrôles individuels répertoriés dans la Bibliothèque de contrôles Windows Presentation Foundation et Galerie de contrôles Silverlight sur MSDN. Pour plus d’informations sur la syntaxe de programmation, vous pouvez rechercher des mots clés dans votre code sur MSDN.

Lorsque vous générez votre application, toute erreur de compilation apparaît dans l’onglet Erreurs du panneau Résultats de Blend, ou dans le panneau Liste d’erreurs de Visual Studio.

Les erreurs de compilation se produisent lorsque le système de compilation de Blend ou de Visual Studio ne peut pas trouver quelque chose dont votre projet a besoin. Par exemple, s’il manque une référence à votre projet Windows Presentation Foundation (WPF) pour les assemblys WPF, vous risquez d’obtenir le message d’erreur suivant : Le nom « Window » n’existe pas dans l’espace de noms « http://schemas.microsoft.com/winfx/2006/xaml/presentation ». Si cette erreur se produit, vous pouvez cliquer sur Ajouter une référence dans le menu Projet afin d'ajouter des références aux assemblys WPF suivants dans le dossier « C:\Program Files\Reference Assemblies\Microsoft\Framework\ » :

  • PresentationCore.dll

  • PresentationFramework.dll

  • WindowsBase.dll

Si vous continuez de recevoir des messages d’erreurs tels que « Le nom '<membre>' n’existe pas dans le contexte actuel, », il manque certainement une autre référence à un assembly, ou vous devez peut-être ajouter une instruction using (C#) ou Imports (Visual Basic .NET) à votre code pour l’espace de noms manquant. Pour connaître l’assembly ou l’espace de noms requis, voir la rubrique de référence MSDN pour le membre à l’origine de l’erreur.

Certaines autres causes courantes d’erreurs de compilation se présentent comme suit :

  • Un mot clé n’a pas été correctement orthographié ou la casse est erronée.

  • Une classe est incorrectement référencée dans votre application. Par exemple, si votre application utilise une classe personnalisée implémentée dans un fichier de code .cs ou .vb séparé avec son propre espace de noms, tout document de votre application qui utilise cette classe personnalisée doit inclure une ligne telle que celle ci-dessous, où FullyQualifiedNamespace est l’espace de noms dans le fichier de code :

    xmlns:SampleNamespace="clr-namespace:FullyQualifiedNamespace"
    
  • Les options du compilateur ne sont pas correctement définies ou votre système n’est pas capable de générer des applications basées sur Microsoft .NET Framework. Si vous disposez de Microsoft .NET Framework et que vous générez votre application à l’aide de Blend ou de Visual Studio, cela ne constitue pas un problème.

  • Un fichier n’a pas été enregistré avant la tentative de génération du projet. Si, par exemple, vous utilisez le panneau ÉvénementsJJ171011.6c67bb3b-e8a2-4a63-bad5-54d5c15b04dd(fr-fr,VS.120).png of Blend afin de générer une nouvelle méthode de gestionnaire d’événements dans le fichier code-behind (en ouvrant donc le fichier code-behind dans Visual Studio), et si vous tentez de générer le projet dans Blend sans enregistrer préalablement le fichier code-behind, une erreur vous indique qu’il manque à votre projet une définition pour le gestionnaire d’événements.

Une erreur d’exécution se produit si votre application est générée mais fonctionne de manière inattendue lorsque vous l’exécutez (en appuyant sur la touche F5 dans Blend). Les erreurs d’exécution sont les plus difficiles à identifier car elles impliquent des erreurs de logique. Parfois, vous pouvez parvenir à corriger des erreurs d’exécution en tentant d’apporter diverses modifications à votre langage XAML ou votre code, jusqu’à trouver où se situe le problème. Cependant, il est plus rapide d’observer ce qui se passe en coulisses en analysant votre code ligne par ligne pendant l’exécution de l’application.

Pour plus d'informations, consultez Déboguer les applications Blend dans Visual Studio.

Certaines causes courantes d’erreurs d’exécution se présentent comme suit :

  • Des éléments XAML ne sont pas correctement disposés ou un objet de panneau incorrect est utilisé pour contenir d'autres objets.

    Pour en savoir plus sur la disposition, consultez Organiser les objets en conteneurs de disposition dans Blend, ou voir Le système de disposition et Alignement, marges, ainsi que de remplissage dans la section WPF sur MSDN.

    Un élément XAML n’est pas rattaché au gestionnaire d’événements correct. Cela peut se produire si vous créez de nombreuses méthodes de gestionnaire d’événements et en affectez une erronée à l’élément XAML. Pour connaître les gestionnaires d’événements affectés à un élément XAML dans un projet WPF ouvert dans Blend, sélectionnez l'objet dans le panneau Objets et chronologie, puis dans le panneau Propriétés, cliquez sur le bouton Événements.

  • Un déclencheur d’animation n’est pas correctement défini dans Blend. Les tables de montage séquentiel d’animation, par exemple, doivent être démarrées dans n’importe quel déclencheur si vous voulez être en mesure de les arrêter ou de les mettre en pause une fois l’application chargée. (Toutes les tables de montage séquentiel sont démarrées dans le déclencheur Window.Loaded par défaut, mais vous pouvez changer cela.)

    Pour plus d'informations, consultez Animation des objets. Pour obtenir un exemple des déclencheurs d’animation, voir Créer une animation simple.

  • Dans un fichier de code, une variable fait référence à un objet qui n’existe pas encore. Par exemple, dans un fichier code-behind, si vous référencez un objet XAML avant la ligne this.InitializeComponent(), le message d’erreur XamlParseException s’affiche.

  • Dans un fichier de code, votre application progresse vers un chemin de code inattendu. Dans cette situation, l’analyse de votre code lors du débogage de votre application dans Visual Studio 2010 constitue la meilleure approche.

    Pour plus d'informations, consultez Déboguer les applications Blend dans Visual Studio.

  • Dans un fichier code-behind, les mises à jour de l’interface utilisateur sont exécutées sur le même thread qu’une autre logique de programmation qui devrait être exécutée sur un thread distinct. Par exemple, si vous créez une méthode de gestionnaire d’événements qui met à jour le texte affiché dans une Label, effectue d’autres calculs, puis met encore à jour le texte dans la même Label avant la fin de la méthode de gestionnaire d’événements, seule la dernière mise à jour sera visible. En effet, l’affichage de votre interface utilisateur se produit à la fin de votre méthode de gestionnaire d’événements et l’ensemble du traitement s’effectue sur le même thread. Par conséquent, votre application ne trouve pas le temps de mettre à jour l’interface utilisateur pendant l’exécution de votre méthode.

    Pour plus d’informations sur l’écriture d’applications WPF contenant plusieurs mises à jour et calculs de l’interface utilisateur, voir Modèle de thread dans la section WPF sur MSDN.

  • Dans une méthode de gestionnaire d’événements au sein d’un fichier code-behind, des éléments d’interface utilisateur ou leurs propriétés sont référencés avant d’être disponibles. Par exemple, dans une méthode constructeur Window1(), vous n’êtes pas encore en mesure d’accéder à des éléments d’interface utilisateur. Dans une méthode de gestionnaire d’événements OnInitialized(), vous pouvez accéder à des éléments d’interface utilisateur, mais vous ne pouvez pas analyser des propriétés telles que ActualWidth, car les éléments d’interface utilisateur n’ont pas encore été placés. Dans une méthode de gestionnaire d’événements OnLoaded(), vous pouvez effectuer n’importe quelle opération avec des éléments d’interface utilisateur qui existent dans votre document XAML.

    Pour plus d'informations, consultez Événements de durée de vie d'objet dans la section WPF sur MSDN.

Blend est un outil de conception destiné à créer des interfaces utilisateur riches pour des applications basées sur WPF et des applications Microsoft Silverlight. Utilisez Visual Studio pour ouvrir, générer et déboguer des projets Blend. Si vous rencontrez des problèmes de débogage de votre application à l’aide de la fonction Exécuter le projet (F5) d’Blend, utilisez Visual Studio pour obtenir des messages d’erreurs détaillés sur les erreurs d’exécution.

Pour plus d'informations, consultez Déboguer les applications Blend dans Visual Studio.

WPF fournit une suite d’outils d’évaluation des performances qui vous permet d’analyser le comportement de l’exécution de votre application et de déterminer comment améliorer ces performances.

Pour plus d'informations, consultez Outils de profilage des performances pour WPF et Optimisation des performances des applications WPF dans la section WPF sur MSDN.

Des programmeurs .NET expérimentés peuvent ajouter du code à leurs applications WPF pour déclencher des événements de débogage personnalisés qui les aident à résoudre des bogues plus complexes. Cette fonction s’appelle le suivi d’événements pour Windows (ETW - Event Tracing for Windows). L’outil de profilage de suivi d’événements WPF utilise ETW pour l’enregistrement des événements.

Pour plus d’informations, voir « Suivi d’événements » et « Classe PresentationTraceSources » dans Outils de profilage de performances pour WPF sur MSDN.

Si vous disposez d’une application qui utilise à la fois WPF et une autre technologie telle que la programmation Windows Forms, vous risquez d’être confronté à des problèmes de superposition, de mise à l’échelle, de focus de contrôle, etc.

Pour plus d’informations sur le débogage des applications hybrides, voir Dépannage des applications hybrides dans la section WPF sur MSDN.

Pendant son débogage, votre application dispose des mêmes autorisations de sécurité que lorsqu’une autre personne l’utilise.

Pour plus d'informations, consultez Déployer et publier des applications développées dans Blend.

Pour plus d'informations sur la sécurité des applications WPF, consultez Sécurité dans la section WPF sur MSDN.

Si vous avez besoin d'aide supplémentaire sur le débogage de votre application pour Blend, vous pouvez rechercher Forum Windows Presentation Foundation ou Centre de formation Silverlight pour les publications en rapport avec votre problème, ou pour poser une question.

Afficher: