it-roy-ru.com

"Не загружены символы для модуля MyLibrary.dll"?

Я пытаюсь изучить Windows Phone dev, создав базовое приложение, которое предоставляет информацию о Pokemon. Для этого я создал переносную библиотеку классов (PokeLib.dll), чтобы она была совместима с универсальными приложениями. Я проверил это через проект в том же решении («Тест»), и он отлично работает. Вы можете взглянуть на их код на моем Github , но, насколько я могу судить, все хорошо. Эти два проекта находятся в одном решении. Для решения приложения для Windows Phone я добавил PokeLib как «существующий проект», добавил ссылки и написал несколько строк кода, чтобы убедиться, что я могу нормально его назвать:

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);
        }
    }

Когда я пытаюсь запустить его на эмуляторе телефона, я получаю следующее сообщение: , Я собираю проект как «отладочный» и не активировал «Включить только мой код». Я не уверен, что делать под панелью символов, но я также могу добавить скриншот, если это будет полезно.

В любом случае, приложение открывается, но зависает, когда я нажимаю кнопку GetData. Я ожидал, что он остановится на мгновение, поскольку этот вызов выполняется синхронно, но это постоянно. Однако никаких ошибок/исключений не выдается. Отладчик также не отвечает, когда я пытаюсь войти в вызов p.Create () (вероятно, это происходит из сообщения на скриншоте).

У кого-нибудь есть представление о том, что я делаю не так? Спасибо!

21
Benjin

Вы можете перейти в раскрывающийся список «Свойства проекта» -> «Создать» -> «Дополнительно» -> «Отладочная информация» и изменить его значение на «полное».

14
Ivan

В Visual Studio я выбрал Build -> Clean Solution . Избавился от этого сообщения

7
arame3333

Я просто исправил ту же ошибку. Я пошел в Инструменты -> Параметры -> Отладка -> Символы и нажал Пустой кэш символов в Visual Studio 2013. Вероятно, удаление ваших папок bin и obj делает почти то же самое в гораздо менее элегантном виде.

5
Departamento B

У меня была эта ошибка, когда у меня была сборка, которая была в GAC, и Visual Studio не удаляла ее до компиляции/отладки. Я смог решить эту проблему, удалив эту библиотеку (DLL) из 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

Это разрешило условие предупреждения и позволило мне снова выполнить отладку.

3
tgolisch

Вы отлаживаете свой код с помощью dll, на который ссылаются, который не скомпилирован для режима отладки. 

Скомпилируйте упомянутую dll в отладке и используйте ее.

Проверьте ссылочные адреса DLL, чтобы убедиться, что вы используете правильный DLL.

2
Ahmet Arslan

Убедитесь, что у вас не открыто несколько окон VS, особенно одного и того же проекта! :) 

1
Nick

Единственный способ обойти это сообщение - перейти в «Отладка»> «Параметры и настройки»> «Отладка»> «Символы», а затем выбрать переключатель «Все модули, кроме исключенных».

Я не уверен, что это идеальный обходной путь, но пока он работает.

1
Dave Green
  1. выполнена быстрая очистка с помощью ccleaner. 
  2. Чистое решение и перестроить проект 
  3. И это сработало для меня. (Я действительно не знаю как) 

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

1
Kaushik Thanki

В моем случае у меня была запущена другая версия приложения, которая использовала тот же .dll. Это предотвратило обновление GAC с помощью версии отладки. Мне пришлось убить процесс через диспетчер задач.

1
Dowlers

Я обнаружил, что проект, о котором я получал сообщение, был оптимизирован при сборке.

Я вошел в свойства проектов, вкладку «Компиляция», «Дополнительные параметры компиляции» и снял флажок Enable Optimizations

 DeselectEnableOptimizations

0
chris31389

так починили мою,

У меня была одна и та же страница, открытая в двух браузерах, и сначала я выбираю 1-й браузер, затем 2-й браузер для отладки, не закрывая 1-й браузер, закрывая один из них исправил его ...

0
Roshna Omer

Я также столкнулся с той же ошибкой, и в моем случае проблема была из-за файла преобразования web.config, который я хотел установить, кроме debug.config.

Мне пришлось отслеживать ошибку с помощью ветви stage, и поэтому я настраиваю активную конфигурацию решения as Stage .

  • Перейти к свойство вариант вашего проекта решения 
  • Нажмите на Диспетчер конфигурации кнопку в правой верхней части.
  • Теперь перейдите к раскрывающемуся параметру активная конфигурация решения и выберите файл конфигурации (веб) для своего проекта, который будет действовать при его запуске.

Я выбрал стадию, и когда я строил проект, я получил эту ошибку, и из-за этого отладчики стали неактивными.

Но когда я установил опцию обратно на debug , проблема была решена. 

0
Jitender Kumar

Вы можете использовать DotPeek для генерации файлов PDB для библиотеки, а затем поместить ее в ту же папку, что и ваша dll. Еще один вариант, если код с открытым исходным кодом, заключается в клонировании репозитория, добавлении проекта в проект, добавлении зависимостей, установке порядка сборки и начале отладки.

0
Karthik Nishanth