【发布时间】:2020-10-20 02:48:05
【问题描述】:
我有一个 Xamarin.Forms 项目并引用了我编写的 dll。不知道从什么时候开始,但现在我无法在 dll 中设置断点或步入 dll。我直接在安卓平板上调试。
首先,我收到了消息
您的应用已进入中断状态,但没有可显示的代码,因为所有线程都在执行外部代码(通常是系统或框架代码)。
然后我更改了调试选项并取消选中“仅启用我的代码”。现在我明白了
没有兼容的代码在运行
选定的调试引擎不支持在当前线程上执行的任何代码(例如,只有本机运行时代码正在执行)。
我检查了this post 的解决方案,但到目前为止,它们都没有奏效:
- pdb 文件位于 dll 所在的同一位置
- “仅启用我的代码”未选中
- “构建”>“配置管理器”下处于“调试”模式的所有内容(Xamarin.Forms 项目和库)
- 取消选中“要求源文件与原始版本完全匹配”和“跳过属性和运算符”
- VS重启
- 清理解决方案并重建
- 如here 所述清除
%USERPROFILE%\AppData\Local\Temp - 在 XF 解决方案项目选项中选中“启用本机代码调试”
- 重启电脑
- 从设备中删除了应用和支持库
- 尝试了另一个设备,包括。模拟器
它总是这样工作:
- 检查了对正确 dll 版本的引用(带有重建)
- 从 dll 项目中打开 *.cs 文件
- 设置断点或步入 dll 并玩得开心
现在它没有,我已经没有想法了。我正在使用 Visual Studio 2019 (v 16.5.4)。它确实适用于项目参考,但我不想每次都更改设置。还是在 VS 2019 中删除了这个功能(调试引用的 dll)?
【问题讨论】:
-
您配置了哪种 pdb 类型(共享代码/应用程序)?应该是set to "portable"
-
我从 Droid 项目中编辑了 csproj,并将
DebugType的值从full更改为portable,但仍然是同样的问题。还是我应该在其他地方更改它? -
尝试“pdbonly”作为设置
-
这也没有帮助。
-
@testing 找了一篇关于调试dll的文章,大家可以看看:docs.microsoft.com/en-us/visualstudio/debugger/…
标签: c# android xamarin.forms dll visual-studio-2019