it-swarm.com.ru

Точки останова не попадают в Xamarin Studio

Мои точки останова не попадают в Xamarin Studio. Я не уверен, имеет ли это отношение к моему коду или нет, но я чувствую, что это не так, потому что я пытался снова и снова ставить точки останова по всему моему проекту (в местах, где я знаю, что они определенно должны быть ударил, и в местах, где код работает отлично и совершенно не связан с функцией, которую я сейчас тестирую), и ни одна из них не получила подтверждения при отладке. У меня нет отключенных контрольных точек, и они не добавлены в неправильном месте. Точки останова должны работать нормально, а они нет. Я также добавлю, что мне не разрешают приостанавливать мое приложение во время процесса отладки. Я полагаю, вы могли бы сказать, что отладчик в моей Xamarin Studio не работает, и я понятия не имею, почему. Я полагаю, что определил, что это не имеет отношения к коду, но я все еще не уверен в этом. Пожалуйста помоги. Спасибо. 

14
slomdogmillionaire

Это самый популярный вопрос о том, что «точки останова не попадают в xamarin» в Google, поэтому после целого дня проб и ошибок я опубликую здесь решение этой проблемы для версий xamarin> 4.0.0.xxx. Да, к сожалению, это просто. 

SOLUTION (Это решение предназначено для приложений Android в visual studio, но должно работать и в xamarin studio)

Удалите все символы из пути к вашей папке «Debug» (обычно: [путь к вашему файлу .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, как обычно, когда вам нужно что-то отладить.

 enter image description here

18
rvnlord

Я не уверен, что кто-то все еще следит за этой веткой, но этот обходной путь помог мне .. Проблема иногда связана с моно 5.

Таким образом, разрешение заключается в использовании более старой версии моно:

Установите для параметра «Проект> Активная среда выполнения» значение «Mono 4.8.0 (8f6d0f6) (/Library/Frameworks/Mono.framework/Versions/4.8.0)».

для пользователей Mac: измените его в «Предпочтения» -> «.NET Runtimes»

Затем перестройте проект приложения для Android.

9
Haggai

Удаление папок BIN и любого файла * .SUO является любимым решением этой проблемы.

Можно также попробовать удалить любой * .csproj.user

В худшем случае сбросьте настройки VS, запустив (Выполнить) с помощью «Devenv.exe/ResetSettings»

3
Thomas Hagström
  1. Убедитесь, что для вашей конфигурации сборки установлено значение Debug. 
  2. Убедитесь, что настройки сборки вашего проекта установлены так, чтобы разрешать испускать символы DEBUG для вашей конфигурации Debug.
  3. Очистите и восстановите ваше решение/проект.
  4. Закройте и перезапустите Xamarin Studio.
  5. Перезагрузите компьютер.

Иногда конфигурации сборки для вашего решения могут быть сложными, и при построении сложной конфигурации сборки легко что-то упустить. Убедитесь, что все настроено правильно там.

1
NovaJoe

Я столкнулся с этим вчера, используя VS 2013 и плагин Xamarin. «Внезапно» точки останова в проекте PCL не были активны, хотя точки останова в проекте Android все еще были. Все работало отлично в течение нескольких недель, и я не применял никаких обновлений. Глядя на VS Debug | Windows | При просмотре модулей я мог видеть, что символы не загружались для сборки PCL, и ничто из того, что я пробовал, не заставляло их загружаться, даже если они присутствовали в папке с запущенными сборками.

Потом я вспомнил, что последнее, что я сделал накануне, не было связано с кодом, но было немного реорганизовано в файлы csproj для поддержки параметризованной сборки Jenkins. Я поместил определение OutputPath в первую «общую» группу PropertyGroup и удалил его из всех групп PropertyG, относящихся к конфигурации/платформе, например:

<OutputPath>bin\$(Configuration)\</OutputPath>

Я удалил этот «общий» OutputPath и поместил его обратно в каждую конкретную группу PropertyGroup (оскорбляю мои чувства DRY, обратите внимание), и все снова заработало.

Это, вероятно, не собирается кусать очень многих людей, но это потратило впустую пару моих часов, так что, надеюсь, это избавит кого-то еще. Сборка Xamarin, вероятно, выполняет некоторые из своих функций MSBuild/xbuild с большими ожиданиями, поэтому, если вы изменили свои файлы csproj для процесса сборки, это может быть возможным виновником.

1
Mark Larter

Я столкнулся с этой проблемой в приложении Xamarin Forms с использованием Visual Studio для Mac. В моем случае это произошло из-за отладчика. Visual Studio постоянно показывал «Ожидание подключения отладчика к симулятору iOS ...» во время работы в симуляторе iOS. Я сбросил симулятор ( Оборудование => Удалить Все Содержимое и Настройки ) и очистил решение. Тогда я мог бы сделать отладку с точками останова. Надеюсь, это кому-нибудь поможет.

0
Dev

Я переключился со стабильного на альфа канал v.3.11.785 (альфа). все точки останова теперь достигнуты.

0
macio.Jun

Я добавляю этот ответ, потому что это единственный, который работал для меня, в Project Properties > Build я ошибочно проверил Optimize Code. Снятие отметки с этого поля решило проблему.

0
Entretoize