【问题标题】:Xamarin.Forms IOS Breakpoints Not HitXamarin.Forms IOS 断点未命中
【发布时间】:2017-10-16 08:45:09
【问题描述】:

我最近升级到了新的 Xamarin for Visual Studio,从那以后,我在 IOS 调试期间不能再遇到断点。奇怪的是,Android 运行良好。

我卸载并重新安装了 Visual Studio Community Edition 2017 并保留了所有默认设置。以前,这已经解决了像这样的奇怪问题。

我已经阅读了几十个类似的投诉,但这些解决方案对我不起作用。

【问题讨论】:

  • 断点是白色还是红色?您是否尝试过从所有项目中删除所有 binobj 文件夹并重新构建?您也可以尝试在 Mac 上找到缓存文件夹并将其清除。
  • 我已经完成了你的所有建议,但仍然没有任何效果
  • 我也遇到了同样的问题。我正在 Windows 10 上的 VS 2017 Enterprise 上进行开发,在 Mac 上构建并在通过 USB 连接到 Mac 的 iPad 上进行调试。我设法通过转到 iOS 项目的属性并在 Build Settings 中将 Linker Behavior 设置为 Dont Link 并取消选择 Strip Native 调试符号来使其达到断点。
  • 感谢您的建议,但这不起作用
  • “if(System.Diagnostics.Debugger.IsAttached)”会为您返回什么?也试试 System.Diagnostics.Debugger.Break();是不是断线了?

标签: ios visual-studio xamarin.forms breakpoints


【解决方案1】:

我在 Windows 上的 Visual Studio 2017 和在远程 Mac 上使用 iOS 模拟器的最新 Xamarin 遇到了同样的问题。调试已开始,但未命中断点。

通过在 Mac 或 iOS 构建选项上更改 nothing 使其工作;而是将 Windows 中 Visual Studio 2017 中生成的调试信息类型从“Full”或“Pdb-only”更改为“Portable”

我为 iOS 平台项目以及共享 Xamarin.Forms 项目 (.NET Standard 2.0) 执行此操作。

此后,Shared 项目和 iOS 平台项目中的断点开始受到影响。好时光。

【讨论】:

  • 我正在处理我每天都在处理的同一个项目,今天早上我的 iOS 断点突然停止工作。尝试了一切,直到我看到并尝试了它并解决了我的问题。感谢您的帮助!
【解决方案2】:

另一种解决方案是禁用 iOS 项目(不是 PCL 项目)中的链接。这对我有用。

  1. 转到 iOS 项目设置
  2. iOS 构建
  3. 链接器行为:不要链接。

【讨论】:

    【解决方案3】:

    Xamarin.iOS 中存在一个错误,将在Xamarin.iOS 10.12.0.12 (494fcbc) 中修复,该错误应该在 beta 通道中可用。该问题似乎只发生在 PCL 中,如果您在可移植项目(Xamarin.Forms 代码)中设置断点,就会出现这种情况。

    有一个临时的workaround,对我有用:

    可能的临时解决方法:切换可移植类库 项目输出“便携式” PDB 文件而不是“完整” PDB 文件

    1. 在文本编辑器中打开可移植类库 .csproj 文件。例如,右键单击解决方案资源管理器中的项目并选择 卸载项目,然后再次右键单击它并选择“编辑...”。

    2. 在“Debug|AnyCPU”配置的 PropertyGroup 下,将 DebugType 更改为:portable

    3. 保存更改并重新加载项目。

    4. 再次构建、部署并开始调试 iOS 应用项目。

    如果您执行上述步骤,Android 会出现问题。为了能够再次在 Android 上打断点,您必须这样做 this

    长话短说,如果您手动删除“bin”和“obj”文件夹 对于您切换到portable 的每个项目, 从测试设备上卸载应用程序,然后清理并重建 解决方案,这应该有望允许portable 模式使用 安卓也是。一旦你执行了一次这些清理步骤,你 理论上应该不需要再次执行它们,除非您切换 再次调试类型。

    编辑

    在 Android 上我仍然有 troubles,所以这不是完美的方式。

    【讨论】:

      【解决方案4】:

      转到您的 Visual Studio for Mac、解决方案资源管理器并选择项目, Project->Option->Compiler->Debug information,在下拉菜单中选择“Full”。

      您需要为要调试的解决方案中的每个项目设置此“完整”,否则断点将不会启动。

      【讨论】:

        【解决方案5】:

        Xamarin 表单:确保您的视图与绑定上下文绑定,否则将不会命中断点。并且断点显示为未加载的符号。

        例子:

        public ExamplePage()
            {
                InitializeComponent();
                BindingContext = App.Resolve<ExampleViewModel>();
            }
        

        这为我解决了问题:)

        【讨论】:

          【解决方案6】:

          经过大量挖掘终于找到了解决方案,请查看随附的屏幕截图。

          在 VS 2019 社区版中。

          【讨论】:

            猜你喜欢
            • 2022-12-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-01
            • 2010-10-13
            • 2019-03-29
            • 1970-01-01
            • 2019-10-02
            相关资源
            最近更新 更多