2017-02-07 1 views
2

Je tente de déboguer du code C# que je consomme via des paquets nuget, en utilisant VS2015. Le paquet contient la DLL, PDB, et le code source pour la DLL dans la structure suivante (suggérée par les docs NuGet):Visual Studio ignorant les fichiers PDB dans le dossier de sortie

> lib 
    > portable.etc.etc 
     > x.dll 
     > x.pdb 
> src 
    > *.cs 
    > **/*.cs (etc.) 
> x.nupkg 

Dans le dossier bin/Debug de mon application, je peux voir les fichiers .pdb copiés sortir avec les DLL. D'après ma compréhension (de la documentation sur le débogueur de Visual Studio), le débogueur doit chercher dans le même dossier que la DLL pour un PDB du même nom (ou hachage correspondant).

Lorsque je définis un point d'arrêt à l'aide de cette configuration et que j'essaie d'entrer dans le code du paquet nuget, un explorateur de fichiers s'ouvre pour me demander de trouver le fichier source. Si je sélectionne le fichier source fourni avec le paquet nuget, je peux définir des points d'arrêt, mais le débogueur ne s'arrête jamais dessus. Ainsi, il me semble que les APB ne sont pas utilisés du tout.

Compilation du programme consommateur dans Debug, les paquets nuget sont également construits dans la configuration Debug.

Enable Just My Code est décoché.

Comment est-ce que j'obtiens Visual Studio pour utiliser les PDB du paquet nuget?

----------- MISE À JOUR -------------------

Got à l'aide de l'APB de bin/Debug, après corriger certaines configurations farfelues qui ont été définies par défaut dans VS. (Débogage au niveau de l'adresse). Cependant, il me fait toujours chercher le fichier source dans un explorateur de fichiers. Est-ce qu'il n'y a aucun moyen pour VS d'ouvrir automatiquement ce fichier source, ou est-ce que l'ouverture manuelle du fichier est un fardeau pour mes clients? Pour clarifier, les PDB se chargent automatiquement. Je veux charger automatiquement les fichiers source C# que VS est à la place, ce qui me fait chercher manuellement dans un explorateur de fichiers.

+2

vous sont en cours d'exécution comme une libération ou en mode débogage? –

+0

encore plus important - Nuget est-il compressé avec les DLL construites Debug ou Release? chaque type peut inclure des PDB (pour un meilleur rapport d'exception). – Mobigital

+0

mode de débogage. remplir les caractères afin que la pile me laisse répondre – Dagrooms

Répondre

2

Essayez de désactiver juste mon code dans les paramètres de débogage, puis naviguez dans Debug -> Fenêtre -> modules et les symboles de charge pour le paquet externe

+0

Exécuter la solution et les modules doivent apparaître – Enrico

+0

Intéressant, je vois 'bin \ Debug \ x.pdb : Symboles chargés. »Appuyer sur« Step Into »me donne une page de démontage. – Dagrooms

+0

Déjà fait il décoché, pour le record. – Dagrooms

2

Vous devez vous assurer que vous avez « Activer juste mon code » non cochée pour parcourir les fichiers .pdb tiers.

Aller à: Outils -> Options -> Debugging -> Décochez la case "Activer Just My Code"

Il lit les informations de la source de la pdb si elle est disponible et des allumettes. Le fichier pdb doit correspondre au fichier dll correspondant pour fonctionner correctement, c'est-à-dire à partir de la même version.

enter image description here

+0

C'est décoché, je promets – Dagrooms