Мои контрольные точки не попадают в Xamarin Studio. Я не уверен, связано ли это с моим кодом или нет, но я чувствую, что это не так, потому что я много раз пытался перехватывать контрольные точки по всему моему проекту (в тех местах, где я знаю, они обязательно должны быть и в местах, где код работает отлично и полностью не связан с функцией, которую я тестирую в настоящий момент), и ни один из них не получает подтверждение при отладке. У меня нет отключенных точек останова, и я не добавляю их в неправильное место. Контрольные точки должны работать нормально, а это не так. Я также добавлю, что мне не разрешено приостанавливать мое приложение во время процесса отладки. Полагаю, вы могли бы сказать, что отладчик в моей Xamarin Studio не работает, и я понятия не имею, почему. Я считаю, что я определил его, не связанный с кодом, но я не могу быть уверен в этом. Пожалуйста помоги. Спасибо.
Точки останова не попадают в Xamarin Studio
Ответ 1
Это самый популярный вопрос: "точки останова не попадают в xamarin" в google, поэтому после целого дня проб и ошибок я опубликую здесь решение этой проблемы для версий xamarin > 4.0.0.xxx, Да, к сожалению, это просто.
РЕШЕНИЕ (Это решение предназначено для приложения для Android в visual studio, но должно работать и в студии xamarin)
Удалите все символы из пути в папку "Отладка" (обычно: [путь к вашему .sln файлу]\[имя вашего решения]\bin\Debug):
Итак, если вы получили, например:
G:\My Files\Programming\C# (+ JS)\Test1\Examples\LINQ to Objects\AndroidDemo\AndroidDemo\bin\Debug
Измените его на:
G:\My Files\Programming\CSharp\Test1\Examples\LINQ to Objects\AndroidDemo\AndroidDemo\bin\Debug
Для меня "(" и ")" символы вызывали проблему (кто использует такие символы в пути в любом случае правильно?)
Чтобы убедиться, что это работает, откройте папку отладки, в VIsual Studio Выберите "Чистое решение", "Перекомпилировать решение", "Развернуть".
Действие "Развернуть" должно генерировать файлы *.mdb, которые включают ваши данные отладки. Если они присутствуют, вы должны теперь иметь возможность остановиться на контрольных точках.
Теперь вы можете просто нажать F5, как обычно, когда вам нужно что-то отлаживать.
Ответ 2
Я не уверен, что кто-то все еще следит за этой нитью, но это обходное решение сработало для меня. Проблема иногда связана с моно 5.
Таким образом, разрешение заключается в использовании более старой версии моно:
Установите "Project > Active Runtime" в "Mono 4.8.0 (8f6d0f6) (/Library/Frameworks/Mono.framework/Versions/4.8.0)".
для пользователей Mac, измените его в "Предпочтения" → ".NET Runtimes"
Затем перестройте проект приложения Android.
Ответ 3
Удаление папок BIN и любого файла *.SUO является излюбленным исправлением этой проблемы.
Можно также попытаться удалить любой *.csproj.user
В худшем случае reset VS Settings, запустив (Запустить) с помощью "Devenv.exe/ResetSettings"
Ответ 4
- Убедитесь, что ваша конфигурация сборки настроена на Debug.
- Удостоверьтесь, что ваши настройки сборки проекта настроены так, чтобы позволить использовать символы DEBUG для вашей конфигурации Debug.
- Очистите и перестройте решение/проект.
- Закройте и перезапустите Xamarin Studio.
- Перезагрузите компьютер.
Иногда конфигурации сборки для вашего решения могут усложняться, и легко пропустить что-то при построении сложной конфигурации сборки. Убедитесь, что все правильно установлено.
Ответ 5
Я столкнулся с этим вчера, используя VS 2013 и плагин Xamarin. "Внезапные" точки останова в проекте PCL неактивны, хотя точки останова в проекте Android все еще были. В течение нескольких недель все работало отлично, и я не применял никаких обновлений. Глядя на VS Debug | Windows | Просмотр модулей, я мог видеть, что символы не были загружены для сборки PCL, и ничто из того, что я попробовал, не заставит их загружать, даже если они присутствуют в папке с запущенными сборками.
Затем я вспомнил, что последнее, что я делал в предыдущий день, не было связано с кодом, но было немного рефакторинга файлов csproj для поддержки параметризованной сборки Jenkins. Я поместил определение OutputPath в первую "общую" PropertyGroup и удалил его из всех групп свойств Property/Platform, например:
<OutputPath>bin\$(Configuration)\</OutputPath>
Я удалил этот "общий" OutputPath и вернул его в каждую конкретную PropertyGroup (оскорбив мои сухие чувства, заметьте), и все стало работать снова.
Это, вероятно, не укусит очень много людей, но потратил пару часов, так что, надеюсь, это избавит кого-то другого. Сборка Xamarin, вероятно, делает некоторые из ее MSBuild/xbuild spelunking с сильными ожиданиями, поэтому, если вы изменили свои файлы csproj для процесса сборки, это может быть возможным преступником.
Ответ 6
Я переключился с стабильного на альфа-канал v.3.11.785 (Alpha). все точки останова теперь поражены.
Ответ 7
Я добавляю этот ответ, потому что это единственный, который работал у меня, в Project Properties > Build
я ошибочно проверил Optimize Code
.
Если снять флажок, проблема решена.
Ответ 8
Я столкнулся с этой проблемой в приложении Xamarin Forms, использующем Visual Studio для Mac. В моем случае это произошло из-за отладчика. Visual Studio постоянно показывал "Ожидание подключения отладчика к симулятору iOS..." во время работы в симуляторе iOS. Я сделал сброс симулятора (Hardware => Erase All Content and Settings) и очистил решение. Тогда я мог бы сделать отладку с точками останова. Надеюсь, это кому-нибудь поможет.
Ответ 9
У меня была та же проблема.
ПРИЧИНА (IMO):
В моем случае проблема вызвана Xamarin Studio (но с VS2013 - это то же самое) процесс build/rebuild.
Подробнее, файлы *.mdb неправильно восстановлены, поэтому отладчик работает неправильно. Вы можете проверить, читая решение и перейдя в папку bin/debug: если вы все еще видите файлы *.mdf, то это проблема и в вашем случае!
Решение
Единственное решение, которое хорошо работает, - это вручную удалить все файлы *.mdb в bin/debug из всех проектов вашего решения (так что проект Android и все проекты PCL), а затем сделать перестроить.
Сообщите мне, если это поможет!
Ответ 10
Для меня "(" и ")" символы также вызывают проблемы, я искал недели для этой проблемы. Удалите "(" и ")" в полном пути, выполните чистую сборку, и точки останова будут снова удалены.
Ответ 11
В моем случае, хамарин не попадал в точку останова. Кольца красного цвета были показаны вместо заполненных красных кругов, потому что были некоторые синтаксические ошибки, которые не могут быть отмечены xamarin, так как я думаю, что сборка решений не была актуальной, даже я смог запустить приложение неожиданно. Поэтому я очистил и построил решение, и после этого он указал на ошибки и соответствующие предупреждения. Я исправил их и запустил проект. После этого я смог успешно отладить!
Ответ 12
Если после запуска проекта на устройстве VS возвращается в стандартный режим редактирования (в меню нет параметров отладки), то есть отладчик не подключен; проверьте Свойства проектa > Настройки Android > Включить инструментарий разработчика отмечен. Для меня настройка была отключена (скорее всего, проверена в исходное состояние после выпуска).
Ответ 13
Использовать "Visual Studio для Mac" (предварительный просмотр в данный момент, но работает) вместо "Xamarin Studio".. Это устранило проблему для меня. Точки прерывания работают даже в моих проектах PCL! Другое дело... Мне пришлось сменить "project.json" (формат JSON) на "packages.config" (формат XML) при смене с "Xamarin Studio" на "Visual Studio для Mac".