Приложение Visual Studio C# не будет собираться с отладочной информацией - PullRequest
0 голосов
/ 17 июня 2020

My C# Приложение WPF не загружает файл символов с помощью Visual Studio 2017. Я поискал в Интернете и проверил общие проблемы, но не могу отладить свое приложение. Это новое поведение. Он работал (по крайней мере, несколько месяцев go) как часть многопроектного решения. Я понятия не имею, что изменилось.

У меня установлена ​​точка останова после Main (), и она показывает solid красный цвет, пока я не попытаюсь запустить конфигурацию отладки. Поскольку точка останова не останавливала выполнение, я явно прерываю.

[STAThread]
static int Main(string[] args)
{
    Application.EnableVisualStyles();   // breakpoint on this line
    Application.SetCompatibleTextRenderingDefault(false);

    Debugger.Break();

Теперь при запуске появляется сообщение «Файл символов не загружен» и говорится: «Двоичный файл не был построен с отладочной информацией».

Проверяя свойства проекта конфигурации «Активный (отладка)», на панели «Сборка» я вижу

[x] Define DEBUG constant
[x] Define TRACE constant
[ ] Optimize code

, а в диалоговом окне «Дополнительные параметры сборки»

Debugging Information: Full

Запускаем Build-> Clean, а затем Build-> Rebuild, и я вижу файлы app.exe и app.pdb, созданные в каталоге bin / Debug /. При удалении каталогов bin / и obj / и повторной сборке я все еще получаю ту же ошибку при попытке отладки приложения.

Когда я смотрю на вывод отладки вместе с различными загруженными Windows DLL, загруженными символами , Я вижу свое приложение с надписью «Модули были созданы без символов».

В окне «Отладка -> Windows -> Модули» я вижу свое приложение с «Оптимизировано: Нет» и «Состояние символа: двоичный не был. построен с отладочной информацией ". В этом же окне я щелкнул правой кнопкой мыши свое приложение, выбрал «Загрузить символы» и выбрал файл bin / Debug / app.pdb. Он сказал: «Соответствующий файл символов не найден в этой папке».

Я схожу с ума, пытаясь понять этот. Кажется, он должен быть построен с использованием отладочной информации, но это не так. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 17 июня 2020

Я схожу с ума, пытаясь понять это. Кажется, он должен быть построен с использованием отладочной информации, но это не так. Может ли кто-нибудь указать мне в правильном направлении?

Довольно странная проблема. Я думаю, вы могли бы попробовать эти предложения

Предложение

1) проверьте, соответствует ли имя сборки (щелкните правой кнопкой мыши проект -> Application) имеет пробел, в этом случае вы должны удалить пробел и заново построить его, чтобы проверить его.

2) включить Определить константу DEBUG и Определить TRACE константа , щелкнув правой кнопкой мыши проект -> Сборка .

3) включить опцию Включить только мой код и Использовать управляемый режим совместимости под Инструменты -> Параметры -> Отладка -> Общие

4) проверьте, есть ли в вашем файле xxx.csproj узел <DebugType>full</DebugType>. Если нет, вы можете добавить его в xxx.csproj:

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  <DebugType>Full</DebugType>
</PropertyGroup>

5) Закройте экземпляр VS, удалите скрытую папку .vs в папке решения, папке bin и obj. Затем перезапустите свой проект для повторного тестирования.

6) Если вы устанавливаете несколько пакетов nuget, вы можете запустить эту команду в разделе Инструменты -> Диспетчер пакетов Nuget -> Консоль пакетов Nuget:

update-package -reinstall

7) отключите любые сторонние расширения в меню «Инструменты» -> «Расширения и обновления», если некоторые расширения вызывают такое поведение. И не забудьте перезапустить VS.

8) , если на VS есть последнее обновление, обновите его.

Дополнительно ,

Если новый созданный проект wpf VS2017 можно успешно отладить и ваш проект wpf является старым проектом из старой версии VS, я предлагаю вам создать новый проект wpf в VS2017, а затем перенести старый в новый для проверки.

Вы можете скопировать файл packages.config из старого проекта в каталог root нового проекта, а затем запустить update-package -reinstall, чтобы автоматически ссылаться на эти пакеты на ваш проект.

Любые отзывы будут ожидаемы.

...