web-dev-qa-db-fra.com

"Les symboles du module MyLibrary.dll n'ont pas été chargés"?

J'essaie d'apprendre Windows Phone dev en créant une application de base fournissant des informations sur Pokemon. Pour ce faire, j'ai créé une bibliothèque de classes portable (PokeLib.dll) compatible avec les applications universelles. J'ai testé cela via un projet dans la même solution ("Test"), et cela fonctionne bien. Vous pouvez consulter le code correspondant sur mon Github , mais pour autant que je sache, tout va bien. Ces deux projets sont dans la solution unique. Pour la solution de l'application Windows Phone, j'ai ajouté PokeLib en tant que "projet existant", ajouté les références et écrit quelques lignes de code pour m'assurer que je pourrais l'appeler correctement:

MainPage.xaml:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Button Name="GetDataButton" Content="GetData" Click="GetDataButton_Click" Grid.Row="0" HorizontalAlignment="Center"/>
    <TextBlock Name="DataText" Text="Click to get data" Grid.Row="1" Padding="10"/>
</Grid>

MainPage.xaml.cs:

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        p = new Pokemon(1); // gets data for Pokemon #1 (Bulbasaur)
    }

    Pokemon p;
    int counter = 0;

    private async void GetDataButton_Click(object sender, RoutedEventArgs e)
    {
        DataText.Text = "Fetching... Count: " + ++counter;
        if (counter == 1) // first time button's clicked
        {
            await p.Create(); // populates the data container
            DataText.Text = String.Format("Pokemon #{0}: {1}", p.Id, p.Name);
        }
    }

Lorsque j'essaie de l'exécuter sur un émulateur de téléphone, le message suivant s'affiche: . Je construis le projet en tant que "débogage" et n'ai pas coché "Activer uniquement mon code". Je ne suis pas sûr de savoir quoi faire dans le volet Symboles, mais je peux aussi ajouter une capture d'écran de cela, si cela peut être utile.

Quoi qu'il en soit, l'application s'ouvre, mais se fige lorsque j'appuie sur le bouton GetData. Je m'attendais à ce qu’il gèle un instant puisque cet appel est effectué de manière synchrone, mais c’est permanent. Cependant, aucune erreur/exception n'est générée. Le débogueur ne répond pas non plus lorsque j'essaie d'entrer dans l'appel p.Create () (probablement du fait du message de la capture d'écran).

Quelqu'un a une idée de ce que je fais mal? Merci!

21
Benjin

Vous pouvez aller à la liste déroulante Propriétés du projet -> Construire -> Avancé -> Informations de débogage et changer sa valeur en "complet".

14
Ivan

Dans Visual Studio, j'ai sélectionné Générer -> Nettoyer la solution . Ce message a été supprimé

7
arame3333

Je viens de corriger la même erreur. Je suis allé dans Outils -> Options -> Débogage -> Symboles et appuyez sur Vider le symbole en cache dans Visual Studio 2013. Le fait de supprimer vos dossiers bin et obj revient probablement à peu près au même.

5
Departamento B

J'avais cette erreur quand j'avais un assembly qui était dans le GAC et que Visual Studio ne le supprimait pas avant la compilation/debug J'ai pu résoudre ce problème en supprimant cette bibliothèque (dll) du GAC. 

//if pokelib.dll contained Assembly: PokeLibrary.Pokemon 
//and it showed up in the GAC (c:\windows\Assembly\) with that Assembly name
gacutil /u PokeLibrary.Pokemon

Cela a résolu la condition d'avertissement et m'a permis de déboguer à nouveau.

3
tgolisch

Vous déboguez votre code avec une dll référencée qui n'est pas compilée pour le mode débogage. 

Compilez les DLL référencées dans le débogage et utilisez-les.

Vérifiez les adresses DLL référencées pour vous assurer que vous utilisez la DLL correcte.

2
Ahmet Arslan

Assurez-vous de ne pas avoir plusieurs fenêtres VS ouvertes, en particulier du même projet! :) 

1
Nick

Le seul moyen de contourner ce message consiste à accéder à Debug> Options et paramètres> Débogage> Symboles, puis à sélectionner le bouton radio "Tous les modules, sauf exclusion."

Je ne suis pas sûr que ce soit la solution idéale, mais cela fonctionne pour le moment.

1
Dave Green
  1. effectué un nettoyage rapide à l'aide de ccleaner. 
  2. Solution propre et projet de reconstruction 
  3. Et cela a fonctionné pour moi. (Je ne sais vraiment pas comment) 

& this worked for me. ( I really don't know how )

1
Kaushik Thanki

Dans mon cas, une autre version de l'application en cours d'exécution utilisait le même fichier .dll. Cela empêchait le GAC d'être mis à jour avec la version de débogage. J'ai eu le tuer le processus par le gestionnaire de tâches.

1
Dowlers

J'ai trouvé que le projet sur lequel je recevais le message était optimisé lors de sa construction.

Je suis allé dans les propriétés du projet, l'onglet Compiler, Options de compilation avancées ... et décoché la case Enable Optimizations

 DeselectEnableOptimizations

0
chris31389

voici comment le mien a été réparé,

J'avais la même page ouverte dans deux navigateurs et j'ai d'abord choisi le 1er navigateur, puis le 2e navigateur pour déboguer sans fermer le 1er navigateur, fermer l'un d'eux fixe.

0
Roshna Omer

J'ai également fait face à la même erreur et dans mon cas, le problème était dû au fichier de transformation web.config que je voulais configurer, à l'exception de debug.config.

Je devais suivre un bogue à l’aide d’une branche stage et j’ai donc configuré la configuration de la solution active sous le nom Stage.

  • Accédez à l'option property de votre solution de projet. 
  • Cliquez sur le bouton Configuration Manager en haut à droite.
  • Parcourez maintenant l'option de menu déroulant configuration active de la solution et choisissez le fichier de configuration (Web) sur lequel votre projet agira lors de son exécution.

J'avais choisi la scène et quand j'ai construit le projet, j'ai eu cette erreur et à cause de cela les débogueurs sont devenus inactifs.

Mais lorsque je redéfinis l'option sur debug, le problème est résolu. 

0
Jitender Kumar

Vous pouvez utiliser DotPeek pour générer des fichiers PDB pour la bibliothèque, puis placez-la dans le même dossier que votre dll. Une autre option, si le code est open-source, consiste à cloner le référentiel, ajouter le projet à votre projet, ajouter une dépendance, définir un ordre de construction et lancer le débogage.

0
Karthik Nishanth