在 Xamarin iOS 中调试异步代码

Posted

技术标签:

【中文标题】在 Xamarin iOS 中调试异步代码【英文标题】:Debug async code in Xamarin iOS 【发布时间】:2014-04-27 02:54:20 【问题描述】:

我似乎无法调试任何使用async 关键字的代码。有没有人有任何想法来解决这个问题?我完全一无所知。我尝试了几个人建议的不同链接设置,但没有成功。 使用async 之前的任何断点都有效。

编辑:当我在 Mac 上使用 Xamarin Studio 打开解决方案时,调试代码工作正常。不过我更喜欢在 Visual Studio 中开发。

另一个编辑:我通过在 Xamarin Studio 中创建所有项目来“解决”它。如果我发现问题出在哪里,我会在这里发布。

【问题讨论】:

看这个问题-***.com/questions/2301216/… 这段代码是在库还是 PCL 中? 感谢您的建议,但我认为任何答案都与我的情况无关。只是异步的东西是不可调试的,对于任何其他代码行,符号都会被加载。 @thumbmunkeys 这是一个库(ios 库项目)。 也许您需要从 nuget 添加对 Microsoft.Bcl.Async 的引用? 【参考方案1】:
    重启你的机器,完成后不要启动VS 导航到 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root 删除所有调试缓存 对该文件夹执行相同操作..C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root 启动VS,确保以管理员身份运行。 设置断点,验证符号是否已加载并且断点是否成立。

【讨论】:

我迫不及待地想试试这个 .. 但我为什么要从 ASP.NET 文件夹中删除内容? 每天调试时,会为每个调试实例创建临时文件,如果你像我一样每天都有大量调试实例进行,你必须清理你的调试缓存。每天早上在启动 VS 之前这样做是安全的。另一种方法是 VS 实例,它仍然认为它在调试旧版本的代码,因此符号不会加载。我推荐的只是您应该始终做的一件事,以验证您的符号将加载到新的调试实例上。如果不知何故他们仍然不加载你知道它不是你的缓存.. 在执行此操作时,请确保删除根目录下所有 URI 的所有字母数字文件夹。【参考方案2】:

您可以尝试清理解决方案并重新构建它,也可以从您的设备中删除该应用程序。

您可能正在运行不匹配的代码版本。

【讨论】:

以上是关于在 Xamarin iOS 中调试异步代码的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Visual Studio 16.11.1 后,Xamarin Forms 破坏了 XANS 7028:System.IO.FileNotFoundException:无法加载程序集“Xama

加载程序集时Xamarin Android异常:System.IO.FileNotFoundException:无法加载程序集'Xamarin.Android.Support.Compat&#

后台未调用 DidReceiveRemoteNotification - Xamarin iOS - 推送通知

在应用程序中安全地保存密钥或字符串 - Xamarin 表单

AppCenter 崩溃和 Firebase Crashlytics - 两者都不起作用 - Xamarin.Forms iOS

从 Xamarin ios 中的 url 下载图像的最佳方法是啥?