应何时以及如何提交 bug 报告?

提示

使用 Visual Studio 中的“报告问题”菜单项 - 这将发送诊断信息以及 Bug 报告来帮助解决问题。

Visual Studio 2019 或 Visual Studio 2017Visual Studio for Mac 中有详细说明。

可以在 Visual Studio 开发者社区网站上搜索现有报告。

在以下情况下提交 bug...

你有一组你认为工程师能够用于重现问题的步骤。

OR

你可以仔细描述问题的可见症状,最好也可以描述与问题相关的一些精确情况。[1]

帮助快速高效地解决 bug 的最佳做法

  1. Visual Studio 开发者社区和网上搜索能帮助直接解决问题的现有 bug 报告或使用建议。[2][3]

  2. 尽可能清楚、简洁地描述问题,包括描述发生的和预期会发生的事情。

  3. 加入任何相关的堆栈跟踪、错误消息文本或故障日志(如果使用报告问题功能,则可以自动包含它们)。 [4]

  4. 记下屏幕截图附件中显示为纯文本的任何重要错误消息。

  5. 加入一个小型、独立的测试用例,用尽可能少的代码重现错误。 如果无法使用全新的项目(使用其中一个内置模板创建)重现问题,请压缩一个展示问题的项目,并将其附加到 bug 报告。 在附加示例项目之前使其尽可能地简单。[5][6]

  6. 描述遇到 bug 的环境,包括操作系统和 Xamarin 版本以及任何依赖项。

其他详细信息

  1. ^ 理想情况下,“可见症状”的描述应包含足够的详细信息,以便其他客户可以确认他们是否看到了相同的问题(相同的错误消息、相同的性能降低、相同的崩溃堆栈跟踪等)。 对于“精确情况”,一个很好的例子是,你可以这样说:“我通常 75% 的时间都会遇到这个问题,但如果我改变这一件事,我就能完全避免这个问题。”“精确情况”的另一个类似的例子是,降级到以前版本的 Xamarin 会停止此问题。

  2. ^ 正如预期的那样,错误文本的片段(或任何其他唯一的描述性文本)通常是最佳搜索词。 如果现有的 bug 报告不完整,欢迎添加详细信息或提交新的、更好的 bug 报告。

  3. ^ 另一个好问题是,同样的问题是否有在任何 Java、Objective-C 或 Swift 应用中报告过。 如果有,则问题很可能来自 Android 或 iOS 本身,而不是 Xamarin。

  4. ^ 要包括的一些信息的示例:

    1. 对于生成项目时发生的错误,请在 bug 报告中加入完整的诊断生成输出

    2. 对于从 Visual Studio 生成或调试 iOS 项目时发生的错误,请在命中错误后运行 Help > Xamarin > Zip Logs,并在 bug 报告中加入生成的 .zip 文件。

    3. 对于 Android 或 iOS 应用中的异常或崩溃,请加入相关的 Xamarin.Android 和 Xamarin.iOS 应用调试日志

  5. ^ 对于你的特定问题,如果可能,一个选项是通过将原始解决方案中的少量文件添加到全新的解决方案中来重新创建问题。 Xamarin 团队通常能够调查大型测试用例上的问题(假设重现步骤有明确解释),但在更简单的测试用例中,快速解决 bug 的机会最大。

  6. ^ 如果无法通过将少量文件添加到全新的解决方案来重现问题,则可以压缩整个应用的全部解决方案文件夹并附加它。 请删除 binobjComponentspackages 文件夹,使 zip 文件更小。 (IDE 和生成过程通常会根据需要还原或重新创建这些文件夹的内容。)你也可以根据需要从项目中删除任意数量的代码和资源文件,只要最终的解决方案仍然能展示原始问题即可。