web-dev-qa-db-fra.com

Comment configurer le débogage à distance sur une machine sans Visual Studio

Existe-t-il un moyen de configurer le débogage distant (Msvscom.exe) sur une machine sur laquelle Visual Studio n'est pas installé?

Je voudrais attacher au service exécuté sur le VM afin que je puisse déboguer un problème dans le code. Je l'ai déjà fait mais les deux machines ont installé VS.

La zone Dev exécute Visual Studio 2010/Windows 7. Le VM exécute Windows 7 sans Visual Studio.

49
CodeMan5000

Je vais ressusciter cela parce que quiconque a essayé de le faire sait que c'est une douleur totale dans le cul à chaque fois, et que cela change légèrement avec chaque combinaison possible d'hôte/système distant que vous pouvez avoir.

Liens des outils à distance de Visual Studio:

  1. Débogueur distant Visual Studio 2010. (Fonctionne au 21/Oct/2016)
  2. outils distants Visual Studio 201 (fonctionne à partir du 21/Oct/2016)
  3. Outils distants Visual Studio 2015 x86 - Lien de téléchargement direct
  4. Outils distants Visual Studio 2015 x64 - Lien de téléchargement direct
  5. Visual Studio Tools (Merci Robo Burned)

Voici la configuration avec laquelle j'ai réussi aujourd'hui:

Machine hôte (dev):
Windows 7 Ultimate SP1 x64. Exécution de Visual Studio 2010, .NET Framework 4.

Machine distante:
PC de sol industriel/d'usine exécutant Windows Embedded Standard 32 bits. Il ressemble/ressemble exactement à Windows 7. Exécution de SP1. Visual Studio n'est pas installé. Possède le framework .NET 4.

Réseau:
Les deux machines sont sur le même sous-réseau. J'accède à la machine distante via RDP et exécute mon application de cette façon.

Implémentation de détérioration des follicules propriétaire de Microsoft:
Notez le nom d'utilisateur et le mot de passe de votre machine de développement. Pour une raison quelconque, vous devez créer exactement le même nom d'utilisateur et le même mot de passe sur la machine distante. Parce que Microsoft.

Comment je l'ai fait:
J'ai téléchargé le débogueur distant Visual Studio 2010 à partir du lien fourni par @sJhonny. J'ai dû désactiver Visual Studio 2013 dans cet article et passer à 2010. Si vous souhaitez parcourir l'article 2010 avec un peigne à dents fines pour trouver le téléchargement, le lien se trouve juste à côté de "Personne ne trouve jamais cela lien "utile" en haut. Sinon, suivez simplement mon lien ci-dessus.

Installez-le sur la machine distante et exécutez l'assistant de configuration. J'ai laissé les valeurs par défaut pour l'assistant:

  • "Exécuter le 'Visual Studio ....." a été coché
  • Le nom d'utilisateur est LocalSystem et le mot de passe est vide
  • Autoriser uniquement les ordinateurs sur le réseau local ....

Exécutez le débogueur distant sur le système distant et vous verrez

Msvsmon a démarré un nouveau serveur nommé 'username @ machinename ...'

dans l'interface. Jusqu'ici tout va bien. Exécutez l'application sur la machine distante. Sur la machine de développement, Ctrl + Alt + P dans Visual Studio ouvrira "Attacher au processus" (c'est aussi dans le menu Outils). J'ai reçu une fenêtre contextuelle indiquant que le pare-feu de ma machine de développement n'était pas configuré correctement et on m'a demandé si je voulais autoriser les connexions, etc.

Entrez la combinaison 'username @ machinename' dans la case qualificative ... appuyez sur Actualiser et priez un peu. Priez un peu plus fort et vous devriez voir une liste des processus en cours d'exécution sur la machine distante. Sélectionnez votre processus et joignez-le.

Mais mes points d'arrêt ne fonctionnent pas!? Bien sûr que non ... car l'utilisation des points d'arrêt dans le même répertoire que l'application sur la machine distante aurait trop de sens. Si vous avez eu la chance, vous avez été averti d'un cache de points d'arrêt et vous avez affiché une boîte de dialogue avec un chemin.

La boîte de dialogue mentionne quelque chose à ce sujet étant correct par rapport à la machine distante. Il ment. Cela n'a rien à voir avec la machine distante, sauf qu'il vous a obligé à créer un nouvel utilisateur là-bas avec le même nom que votre utilisateur actuel, car Microsoft. Pour que vos points d'arrêt fonctionnent, suivez le chemin sur votre machine de développement (personnalisable dans Outils> Options> Débogage> Symboles: Cachez les symboles dans ce répertoire) et copiez les fichiers .pdb de votre application dans ce répertoire. Vous devez les copier avec chaque nouvelle version, à moins qu'il n'y ait une option pour le faire automatiquement; Je n'ai pas vérifié car je dois encore arrêter de célébrer mon succès de débogage à distance.

Tout devrait fonctionner maintenant.

J'espère que cela aidera quelqu'un à sauver les heures de rage aveuglante que j'ai endurées en essayant de faire fonctionner cela sur différentes machines au fil des ans.

99
Brandon

certainement.
Vous pouvez installer msvsmon sans installer Visual Studio.
Je l'ai fait moi-même sur plusieurs machines.
la partie délicate réside dans l'autorisation - l'utilisateur exécutant VS sur votre machine locale a besoin de privilèges spéciaux sur la machine distante.
ms contient des articles expliquant les détails - http://msdn.Microsoft.com/en-us/library/bt727f1t.aspx ,

17
J. Ed

Mise à jour: voici les liens pour 2017 qui ne sont pas évidents à trouver non plus.

lien direct des outils distants Visual Studio x64

Liens directs des outils distants Visual Studio x86 lien direct

8
Isaac Baker

Extrait de: comment-implémenter-débogage à distance dans visual-studio-2005

Prenons un exemple pour comprendre clairement cette situation. Molly Clark et Adam Barr sont tous deux employés chez Adventure Works. Adventure Works possède un domaine Microsoft Windows NT nommé adventure-works.com. Adam a des problèmes avec certains logiciels écrits par Molly. Molly aimerait déboguer ce logiciel sur l'ordinateur d'Adam. Molly et Adam suivent ces étapes:

  • Adam n'a pas le débogueur distant sur son ordinateur. Pour configurer le débogueur distant, Molly décide de partager le répertoire Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger sur son ordinateur. Elle crée un partage de fichiers appelé Remote.
  • Adam exécute\MollyComputerName\Remote\x86\Msvsmon.exe.
  • Après le démarrage du débogueur distant, Adam clique sur Autorisations dans le menu Outils pour configurer le débogueur distant à l'aide de la boîte de dialogue Autorisations. Il donne à Molly la permission de déboguer.
    Remarque Adam pourrait également configurer le débogueur distant en passant l'option/allow lorsque le débogueur distant démarre.
  • Molly démarre Visual Studio 2005.
  • Pour ouvrir la boîte de dialogue Attacher au processus, Molly clique sur Attacher au processus dans le menu Outils.
  • Molly se connecte à l'ordinateur d'Adam en saisissant adventure-works.com\Adam @ AdamComputerName dans la zone Qualifier.
  • Sous Processus disponibles, Molly sélectionne le processus de travail que son application utilise, puis clique sur Attacher.
  • Molly ouvre un navigateur et fournit l'URL de l'application distante. L'exécution s'arrête là où le point d'arrêt est placé dans l'application.
2
Robert Andrzejuk