Débogage à distance d’un projet C# ou Visual Basic dans Visual Studio

Pour déboguer une application Visual Studio qui a été déployée sur un autre ordinateur, installez et exécutez les outils à distance sur l’ordinateur où vous avez déployé votre application, configurez votre projet pour vous connecter à l’ordinateur distant à partir de Visual Studio, puis exécutez votre application.

Screenshot of remote debugger components.

Pour plus d’informations sur le débogage à distance des applications Windows universelles (UWP), consultez Déboguer un package d’application installé.

Configuration requise

Le débogueur distant est pris en charge sur Windows 7 et versions ultérieures et versions de Windows Server à partir de Windows Server 2008 Service Pack 2. Pour obtenir la liste complète des exigences, consultez Exigences.

Notes

Le débogage entre deux ordinateurs connectés via un proxy n’est pas pris en charge. Le débogage via une connexion à haute latence ou à faible bande passante, telle qu’un accès Internet par ligne commutée, ou via un réseau Internet entre différents pays/régions n’est pas recommandé et peut échouer ou présenter des lenteurs inacceptables.

Télécharger et installer les outils de contrôle à distance

Sur l’appareil ou le serveur distant sur lequel vous souhaitez déboguer, plutôt que sur l’ordinateur Visual Studio, téléchargez et installez la version correcte des outils de contrôle à distance à partir des liens du tableau suivant.

  • Téléchargez la mise à jour la plus récente des outils distants pour votre version de Visual Studio. Les versions antérieures des outils distants ne sont pas compatibles avec les versions ultérieures de Visual Studio. (Par exemple, si vous utilisez Visual Studio 2019, téléchargez la dernière mise à jour des outils de contrôle à distance pour Visual Studio 2019. Dans ce scénario, ne téléchargez pas les outils de contrôle à distance pour Visual Studio 2022.)
  • Téléchargez les outils de contrôle à distance dotés de la même architecture que l’ordinateur sur lequel vous les installez. Par exemple, si vous souhaitez déboguer des applications x86 sur un ordinateur distant exécutant un système d’exploitation x64, installez les outils de contrôle à distance x64. Pour déboguer des applications x86, ARM ou x64 sur un système d’exploitation ARM64, installez les outils à distance ARM64.
Version Lien Remarques
Visual Studio 2022 outils de contrôle à distance. Compatible avec toutes les versions de Visual Studio 2022. Téléchargez la version correspondant au système d’exploitation de votre appareil (x86, x64 ou ARM64). Sur les versions plus anciennes de Windows Server, consultez Débloquer le téléchargement de fichier pour obtenir de l’aide sur le téléchargement des outils distants.
Visual Studio 2019 outils de contrôle à distance. Compatible avec toutes les versions de Visual Studio 2019. Téléchargez la version correspondant au système d’exploitation de votre appareil (x86, x64 ou ARM64). Sur les versions plus anciennes de Windows Server, consultez Débloquer le téléchargement de fichier pour obtenir de l’aide sur le téléchargement des outils distants.
Visual Studio 2017 outils de contrôle à distance. Compatible avec toutes les versions de Visual Studio 2017. Téléchargez la version correspondant au système d’exploitation de votre appareil (x86, x64 ou ARM64). Sur Windows Server, consultez Débloquer le téléchargement du fichier pour obtenir de l’aide sur le téléchargement des outils de contrôle à distance.
Visual Studio 2015 outils de contrôle à distance. Les outils de contrôle à distance pour Visual Studio 2015 sont disponibles à partir de My.VisualStudio.com. Si vous y êtes invité, rejoignez le programme Visual Studio Dev Essentials gratuit ou connectez-vous avec votre ID d’abonnement Visual Studio. Sur Windows Server, consultez Débloquer le téléchargement du fichier pour obtenir de l’aide sur le téléchargement des outils de contrôle à distance.
Visual Studio 2013 outils de contrôle à distance. Page de téléchargement dans la documentation de Visual Studio 2013
Visual Studio 2012 outils de contrôle à distance. Page de téléchargement dans la documentation de Visual Studio 2012
Version Lien Remarques
Visual Studio 2019 outils de contrôle à distance. Compatible avec toutes les versions de Visual Studio 2019. Téléchargez la version correspondant au système d’exploitation de votre appareil (x86, x64 ou ARM64). Sur Windows Server, consultez Débloquer le téléchargement du fichier pour obtenir de l’aide sur le téléchargement des outils de contrôle à distance. Pour obtenir la version la plus récente des outils de contrôle à distance, ouvrez la documentation de Visual Studio 2022.
Visual Studio 2017 outils de contrôle à distance. Compatible avec toutes les versions de Visual Studio 2017. Téléchargez la version correspondant au système d’exploitation de votre appareil (x86, x64 ou ARM64). Sur Windows Server, consultez Débloquer le téléchargement du fichier pour obtenir de l’aide sur le téléchargement des outils de contrôle à distance.
Visual Studio 2015 outils de contrôle à distance. Les outils de contrôle à distance pour Visual Studio 2015 sont disponibles à partir de My.VisualStudio.com. Si vous y êtes invité, rejoignez le programme Visual Studio Dev Essentials gratuit ou connectez-vous avec votre ID d’abonnement Visual Studio. Sur Windows Server, consultez Débloquer le téléchargement du fichier pour obtenir de l’aide sur le téléchargement des outils de contrôle à distance.
Visual Studio 2013 outils de contrôle à distance. Page de téléchargement dans la documentation de Visual Studio 2013
Visual Studio 2012 outils de contrôle à distance. Page de téléchargement dans la documentation de Visual Studio 2012

Vous pouvez exécuter le débogueur distant en copiant msvsmon.exe sur l’ordinateur distant, au lieu d’installer les outils de contrôle à distance. Toutefois, l’Assistant Configuration Remote Debugger (rdbgwiz.exe) n’est disponible que lorsque vous installez les outils de contrôle à distance. Vous devrez peut-être utiliser l’Assistant pour la configuration si vous souhaitez exécuter le débogueur distant en tant que service. Pour plus d’informations, consultez (Facultatif) Configurer le débogueur distant en tant que service.

Notes

  • Pour déboguer des applications Windows 10 ou version ultérieure sur des appareils ARM, utilisez ARM64, qui est disponible avec la dernière version des outils de contrôle à distance.
  • Pour déboguer des applications Windows 10 sur des appareils Windows RT, utilisez ARM, qui est disponible uniquement dans le téléchargement des outils de contrôle à distance de Visual Studio 2015.
  • Pour déboguer des applications x64 sur un système d’exploitation ARM64, exécutez le fichier msvsmon.exe x64 installé avec les outils à distance ARM64.

Conseil

Dans certains scénarios, il peut être plus efficace d’exécuter le débogueur distant à partir d’un partage de fichiers. Pour plus d’informations, consultez Exécuter le débogueur distant à partir d’un partage de fichiers.

Configurer le débogueur distant

  1. Sur l’ordinateur distant, recherchez et démarrez le Débogueur distant à partir du menu Démarrer.

    Si vous ne disposez pas d’autorisations d’administration sur l’ordinateur distant, cliquez avec le bouton droit sur l’application Débogueur distant et sélectionnez Exécuter en tant qu’administrateur. Sinon, il suffit de le démarrer normalement.

    Si vous envisagez d’attacher à un processus qui s’exécute en tant qu’administrateur ou qui s’exécute sous un autre compte d’utilisateur (par exemple IIS), cliquez avec le bouton droit sur l’application Débogueur distant et sélectionnez Exécuter en tant qu’administrateur. Pour plus d’informations, consultez Exécuter le débogueur distant en tant qu’administrateur.

  2. La première fois que vous démarrez le débogueur distante (ou avant de l’avoir configuré), l’Assistant Configuration du débogage distant s’affiche.

    Dans la plupart des scénarios, choisissez Suivant jusqu’à ce que vous accédiez à la page configurer le Pare-feu Windows de l’Assistant.

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    Si l’API des services web Windows n’est pas installée, ce qui se produit uniquement sur Windows Server 2008 R2, sélectionnez le bouton Installer.

  3. Sélectionnez au moins un type de réseau sur lequel vous souhaitez utiliser les outils de contrôle à distance. Si les ordinateurs sont connectés à un domaine, vous devez choisir le premier élément. Si les ordinateurs sont connectés via un groupe de travail ou un groupe résidentiel, choisissez le deuxième ou troisième élément, selon les besoins.

    Ensuite, sélectionnez Terminer pour démarrer le débogueur distant.

    Ensuite, sélectionnez Configurer le débogage à distance pour démarrer le débogueur distant.

  4. Une fois la configuration terminée, la fenêtre Débogueur distant s’affiche.

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    Le débogueur distant est maintenant en attente d’une connexion. Utilisez le nom du serveur et le numéro de port indiqués pour définir la configuration de la connexion à distance dans Visual Studio.

Pour arrêter le débogueur distant, sélectionnezFichier>Quitter. Vous pouvez le redémarrer à partir du menu Démarrer ou de la ligne de commande :

<Remote debugger installation directory>\msvsmon.exe

Notes

Si vous devez ajouter des autorisations pour des utilisateurs supplémentaires, modifiez le mode d’authentification ou le numéro de port du débogueur distant, consultez Configurer le débogueur distant.

Déboguer à distance le projet

Le débogueur ne peut pas déployer d’applications de bureau Visual C# ou Visual Basic sur un ordinateur distant, mais vous pouvez toujours les déboguer à distance comme suit. La procédure suivante suppose que vous souhaitez le déboguer sur un ordinateur nommé MJO-DL, comme indiqué dans l’illustration ci-dessous.

  1. Créez un projet WPF nommé MyWpf.

    Si vous essayez de déboguer à distance une application MAUI plutôt que WPF, consultez Débogage à distance d’une application .NET MAUI sur Windows.

  2. Définissez un point d’arrêt facilement accessible quelque part dans le code.

    Par exemple, vous pouvez définir un point d’arrêt dans un gestionnaire de boutons. Pour ce faire, ouvrez MainWindow.xaml et ajoutez un contrôle Button à partir de la boîte à outils, puis double-cliquez sur le bouton pour ouvrir son gestionnaire.

  3. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet et choisissez Propriétés.

  4. Dans la page Propriétés, choisissez l’onglet Déboguer.

    Pour les projets C# ciblant .NET Core ou .NET 5+, à compter de Visual Studio 2022, choisissez l’interface utilisateur des profils de lancement de débogage sous l’onglet Déboguer pour configurer les paramètres de débogage à distance.

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    Sinon, vous modifiez les paramètres de débogage à distance directement dans l’onglet Déboguer.

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. Assurez-vous que la zone de texte Répertoire de travail est vide.

  6. Choisissez Utiliser l’ordinateur distant et tapez nom_de_votre_ordinateur:port dans la zone de texte. (Le numéro de port est affiché dans la fenêtre du débogueur distant. Le numéro de port incrémente 2 dans chaque version de Visual Studio).

    Dans cet exemple, utilisez :

    MJO-DL:4026 sur Visual Studio 2022

    MJO-DL:4024 sur Visual Studio 2019

  7. Vérifiez que l’option Permettre le débogage du code natif n’est pas sélectionnée.

  8. Créez le projet.

  9. Créez un dossier sur l’ordinateur distant ayant le même chemin que le dossier Debug sur votre ordinateur Visual Studio : <chemin source>\MyWPF\MyWPF\bin\Debug.

  10. Copiez le fichier exécutable que vous venez de créer à partir de votre ordinateur Visual Studio dans le dossier nouvellement créé sur l’ordinateur distant.

    Attention

    N’apportez pas de modifications au code et ne régénérez pas (ou vous devrez répéter cette étape). Le fichier exécutable que vous avez copié sur l’ordinateur distant doit correspondre exactement à la source et aux symboles locaux.

    Vous pouvez copier le projet manuellement, utiliser XCopy, Robocopy, PowerShell ou d’autres options.

  11. Vérifiez que le débogueur distant est en cours d’exécution sur l’ordinateur cible (si ce n’est pas le cas, recherchez Débogueur distant dans le menu Démarrer). La fenêtre du débogueur distant ressemble à ceci.

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. Dans Visual Studio, démarrez le débogage (Déboguer > Démarrer le débogage ou appuyez sur F5).

  13. Si vous y êtes invité, entrez les informations d’identification réseau pour vous connecter à l’ordinateur distant.

    Les informations d’identification requises varient en fonction de la configuration de sécurité de votre réseau. Par exemple, sur un ordinateur de domaine, vous pouvez entrer votre nom de domaine et votre mot de passe. Sur un ordinateur hors du domaine, vous pouvez entrer le nom de l’ordinateur et un nom de compte d’utilisateur valide, comme MJO-DL\name@something.com, ainsi que le mot de passe correct.

    La fenêtre principale de l’application WPF doit être ouverte sur l’ordinateur distant.

  14. Si nécessaire, prenez des mesures pour atteindre le point d’arrêt. Il doit être actif. Sinon, cela signifie que les symboles de l’application n’ont pas été chargés. Réessayez et, si cela ne fonctionne pas, obtenez des informations sur le chargement des symboles et comment les résoudre dans Comprendre les fichiers de symboles et les paramètres de symbole de Visual Studio.

  15. Sur l’ordinateur Visual Studio, l’exécution doit être arrêtée au point d’arrêt.

    Si vous avez des fichiers autres que des fichiers de code qui doivent être utilisés par l’application, vous devez les inclure dans le projet Visual Studio. Créez un dossier de projet pour les fichiers supplémentaires (dans l’Explorateur de solutions, cliquez sur Ajouter > Nouveau dossier). Ensuite, ajoutez les fichiers au dossier (dans l’Explorateur de solutions, cliquez sur Ajouter > Élément existant, puis sélectionnez les fichiers). Dans la page Propriétés de chaque fichier, définissez Copier dans le répertoire de sortie sur Toujours copier.

Débogage distant d’une application .NET MAUI sur Windows

Les applications .NET MAUI sont des applications empaquetées qui doivent être inscrites lorsqu’elles sont déployées, en même temps copiées sur un ordinateur distant. Pour déboguer à distance, vous pouvez déployer une version non empaquetée de l’application.

Utilisez l'une des méthodes suivantes pour déboguer à distance :

  • Publiez l’application sur le périphérique distant en tant qu’application non empaquetée en suivant les étapes décrites dans Utiliser l’interface CLI pour publier des applications .NET MAUI non empaquetées pour Windows, puis suivez les étapes décrites dans cet article pour déboguer à distance. (Ignorez les étapes afin de copier l’application.)

  • Suivez la procédure dans cet article, notamment les étapes de la création d’un profil de lancement de débogage pour le projet. Avant de commencer le débogage, modifiez manuellement le fichier launchSettings.json, en remplaçant la valeur commandNameProject par MsixPackage, comme illustré ici.

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    Lorsque vous démarrez un débogage, cette méthode déploie d’abord une version non empaquetée de l’application et la démarre.

    Remarque

    Vous ne pouvez pas modifier le fichier launchSettings.json dans la boîte de dialogue du profil de lancement du débogage une fois la valeur MsixPackage modifiée.

Configurer le débogage avec des symboles distants

Vous devez pouvoir déboguer votre code avec les symboles que vous générez sur l’ordinateur Visual Studio. Les performances du débogueur distant sont nettement meilleures quand vous utilisez des symboles locaux. Si vous devez utiliser des symboles distants, vous devez indiquer au moniteur de débogage distant de rechercher les symboles sur l’ordinateur distant.

Vous pouvez utiliser le commutateur de ligne de commande msvsmon suivant pour utiliser des symboles distants pour le code managé : Msvsmon /FallbackLoadRemoteManagedPdbs

Pour plus d’informations, reportez-vous à l’aide sur le débogage distant (appuyez sur F1 dans la fenêtre du débogueur distant ou cliquez sur Aide > Utilisation).