Когда и как следует указывать отчет об ошибке
Совет
Используйте пункт меню "Отчет о проблеме" в Visual Studio. Это будет отправлять диагностические сведения вместе с отчетом об ошибке, чтобы устранить проблему.
Подробные инструкции по Visual Studio 2019 или Visual Studio 2017 и Visual Studio для Mac.
Вы можете найти существующие отчеты на веб-сайте Сообщество разработчиков Visual Studio.
Отправьте ошибку, если...
У вас есть набор шагов, которые вы думаете, что инженеры смогут использовать для воспроизведения проблемы.
ИЛИ
Вы можете тщательно описать видимые симптомы проблемы, особенно если вы также можете описать некоторые точные обстоятельства, связанные с проблемой.[1]
Рекомендации по устранению ошибок быстро и эффективно
Поиск в Visual Studio Сообщество разработчиков и Интернете для существующих отчетов об ошибках или предложений об использовании, которые могут решить проблему напрямую.[2][3]
Опишите проблему как можно более четко и кратко, в том числе описание того, что произошло и, как ожидается, произойдет.
Включите любые соответствующие трассировки стека, текст сообщения об ошибке или журналы сбоев (если вы используете функцию отчета о проблеме , их можно включить автоматически). [4]
Запишите все важные сообщения об ошибках, которые отображаются на снимке экрана в виде обычного текста.
Включите небольшой автономный тестовый случай, который воспроизводит ошибку как можно меньше кода. Если вы не можете воспроизвести проблему с новым проектом (созданным с помощью одного из встроенных шаблонов), закрепите проект, демонстрирующий проблему, и прикрепите его к отчету об ошибке. Сделайте пример проекта максимально простым перед присоединением.[5][6]
Описать среду, в которой обнаружена ошибка, включая операционную систему и версии Xamarin и все зависимости.
Дополнительные сведения
^ В идеале описание "видимых симптомов" должно содержать достаточно сведений, чтобы другие клиенты могли подтвердить, что они видят ту же проблему (те же сообщения об ошибках, то же снижение производительности, то же трассировка стека из сбоя и т. д.). Для "точных обстоятельств", один хороший пример будет, если вы можете сказать что-то подобное: "Я обычно ударил проблему 75% времени, но если я изменю это одно, то я могу избежать проблемы полностью". Другой аналогичный пример "точного обстоятельства" заключается в том, что понижение до предыдущей версии Xamarin останавливает проблему.
^ Как ожидается, фрагменты текста ошибки (или любой другой однозначно описательный текст) обычно являются лучшими терминами поиска. Если существующий отчет об ошибке является неполным, вы можете добавить сведения или файл нового, лучшего отчета об ошибке.
^ Другой хороший вопрос заключается в том, была ли обнаружена та же проблема для любых приложений Java или Objective-CSwift. В этом случае проблема, скорее всего, является частью Android или iOS, а не частью Xamarin.
^ Ниже приведены несколько примеров сведений:
Для ошибок, возникающих при создании проекта, добавьте полные выходные данные сборки диагностики в отчете об ошибке.
Для ошибок, возникающих при создании или отладке проекта iOS из Visual Studio, запустите журналы справки > Xamarin > Zip после нажатия ошибки и добавьте полученный .zip файл в отчет об ошибке.
Для исключений или сбоев в приложениях Android или iOS включите соответствующие журналы отладки для приложений Xamarin.Android и Xamarin.iOS.
^ Если это возможно для конкретной проблемы, один из вариантов заключается в повторном создании проблемы путем добавления небольшого количества файлов из исходного решения в новое решение. Команда Xamarin часто сможет исследовать проблемы даже в более крупных тестовых случаях (при условии, что шаги для воспроизведения объясняются четко), но более простые тестовые случаи дают лучший шанс, что ошибка будет решена быстро.
^Если невозможно воспроизвести проблему, добавив небольшое количество файлов в новое решение, вы можете запаковать и присоединить всю папку решения для полного приложения. Удалите
bin
zip-файлobj
Components
иpackages
папки, чтобы сделать ZIP-файл меньше. (Интегрированная среда разработки и процесс сборки обычно восстанавливают или воссоздают содержимое этих папок по мере необходимости.) Вы также можете удалить столько файлов кода и ресурсов из проекта, сколько вам нравится, если результирующее решение по-прежнему демонстрирует исходную проблему.