web-dev-qa-db-fra.com

Visual Studio: Débogage d'une DLL référencée, j'ai source dans un autre SLN

J'essaie de déboguer un projet qui a une référence à un DLL que j'ai ajouté, le DLL est stocké dans un répertoire externe et je viens d'ajouter une référence Maintenant, bien sûr, je peux déboguer mon projet mais la ligne qui appelle une méthode sur mon autre DLL que je ne peux pas y insérer, à savoir F12.

Une façon de le faire a été d'ajouter mon projet (dll) en tant que projet existant à ma solution et de remplacer le dll référencé pour utiliser le projet attaché plutôt qu'un fichier sur disque.

Mais quel gâchis, je suis sûr qu'il y a un moyen plus propre?

Il me semble me rappeler si je copie des fichiers PDB ou autre chose, mais je ne m'en souviens pas. Et dois-je ouvrir 2 copies de visual studio, 1 pour mon projet principal et 1 pour ma DLL référencée?

64
Martin

Reconstruisez la deuxième solution en mode débogage sur votre propre ordinateur (afin que les chemins de fichiers de ce PDB soient spécifiques à votre ordinateur).

Copiez les deux fichiers .DLL et .PDB dans votre dossier de références. Visual Studio prendra automatiquement le fichier .PDB et utilisera les chemins de fichiers pour afficher la source.

Vous pouvez également utiliser Symbol Server et Source Server pour ce faire lorsque l’Assembly référencé est construit ailleurs: http://msdn.Microsoft.com/en-us/library/vstudio/ms241613.aspx

70
Knaģis

J'ai eu la solution en faisant le dessous

Essayez de désactiver Just My Code (JMC).

Outils -> Options -> Débogueur Décochez la case "Activer uniquement mon code"

12
Dilip Jangid

J'ai eu le même problème que j'ai résolu en nettoyant et en reconstruisant la solution. Il corrigera les références dans les fichiers .pdb pour localiser et atteindre le point de rupture du second projet.

1
Aamol

Lorsque vous créez une version de débogage, tous les fichiers dll et pdb sont établis dans le projet hôte. Il ne devrait donc pas être nécessaire de copier les fichiers manuellement.

Cliquez avec le bouton droit de la souris sur la solution, sélectionnez Ajouter/Projet existant ... Naviguez jusqu'au dossier Class lib et sélectionnez le fichier proj (par exemple, myproj.csproj). Les fichiers ne sont pas copiés, mais simplement référencés et vous pouvez ouvrir le code source de la classe de la manière suivante: IDE) et définir des points d'arrêt de la manière habituelle pour que tout fonctionne correctement.

0
Cool Blue