Xamarin.Forms 中的 Source Link
Xamarin.Forms NuGet 包包括 Source Link 映射。 源链接会将 NuGet 包中包含的已编译库映射到源代码存储库。 Visual Studio 将在调试期间下载源代码文件,并允许开发人员逐步执行代码,从而无需从源代码构建即可调试包。
有关使用 Source Link 的详细信息,请参阅 Source Link 文档。
警告
Visual Studio 2019 支持 .NET 调试程序的 Source Link,但当前不支持 Mono 调试程序的 Source Link。 因此,可以使用 Source Link 来调试 UWP 应用,但不能调试 Android 或 iOS 应用。 调试 UWP 应用时,必须确保将要调试的库的 PDB 文件复制到编译应用的 bin 目录中的 AppX 文件夹。
启用源链接
使用源链接需要为外部代码启用调试,否则调试程序将跳过对当前解决方案中未包含的代码的调用。 在 Visual Studio 2019 中,此功能位于“调试”部分的“选项”菜单下:
确保已禁用“仅启用我的代码”且已启用“启用 Source Link 支持”。
使用 Source Link 调试 Xamarin.Forms
启用了调试外部包后,Visual Studio 将使用 NuGet 包中包含的 Source Link 映射来下载并单步执行外部源代码。 可以通过在调用 Xamarin.Forms 提供的方法时设置断点来测试这一项:
Visual Studio 会向你发出警告,表示正在下载源文件,具体取决于你在调试器选项中指定的设置:
允许 Visual Studio 下载文件后,调试程序将单步执行外部代码。
Source Link 缓存
Source Link 使用缓存提高性能。 系统会在“符号”部分的“调试”下的“选项”菜单中定义源链接的缓存目录:
你可通过此菜单指定所有调试符号的缓存目录,以及在遇到缓存符号问题时清除缓存。
Source Link 缓存
Source Link 使用缓存提高性能。 MacOS 上的 Source Link 的缓存目录为 /Users/<username>/Library/Caches/VisualStudio/8.0/Symbols
。 此文件夹包含存储用于下载源文件的存储库的子文件夹。 如果 NuGet 包的备用存储库已发生更改,你可能需要手动删除这些文件夹以刷新缓存。