Xamarin iOS模拟器运行旧代码

当我从Visual Studio调试我的Xamarin.iOS项目时,它会在模拟器上构建,安装,并且可以毫无问题地启动应用程序。 但是在启动时,我看到一堆Debug跟踪来自一种方法,这种方法甚至不再存在于我的C#代码中。 我还可以在类中设置断点,我从该方法中删除了该方法所使用的相同行号,并且当调试器停止时,我将在调用堆栈中看到删除的方法。

我已关闭并重新打开Visual Studio,重置与Mac构建服务器的连接,清理并重建我的解决方案,并手动删除解决方案输出。 在Mac上,我已关闭并重新打开模拟器,并尝试重置内容和设置,这确实清除了应用程序。 但即使这样,情况仍然存在。 我可以尝试在Mac上使用其他东西来确保旧代码的所有缓存副本都已删除吗?

在项目文件夹中删除bin和obj文件夹。 这对我有用,但仍然很烦人。

在iOS模拟器中(在Mac上),单击主菜单中的“重置内容和设置”条目。

那么这适用于我的Android项目遇到同样的问题:

  1. 右键单击Android项目,然后选择“属性”。
  2. 选择“Android选项”,然后选择“打包”。
  3. 取消选中“使用共享运行时”选项。

然后它正常工作

检查配置管理器(使用Debug,Release等下拉列表)并检查是否正在构建所有项目。 它通常会因为某种未知原因而取消选中您正在使用的所有项目。

这意味着它不会重建所有项目,因此显示旧版本。

根据您对重建每个项目的评论,这是一个经典的标志,即项目未经过检查而无法在运行时构建,以及为什么必须手动完成。

我有类似的问题(虽然在Android模拟器上)。

什么对我不起作用

  • 重新启动计算机
  • 重新启动Visual Studio
  • 删除bin / obj文件夹
  • 进入配置管理器(调试/发布/配置管理器)并勾选所有内容 – 所有内容都被勾选
  • 更改清单中的应用程序版本

什么对我有用

从模拟器中卸载应用程序,然后再次运行Debug 。 这是一个Android模拟器,所以我通过点击应用程序图标和holidng长时间卸载,然后将其拖动到“卸载应用程序”。 在iOS模拟器上它应该是类似的。

在我的情况下,我必须启用所有架构:

  • Android项目属性
  • Andrid Oprions
  • Section Anvanced标签
  • 选择所有体系结构并重建

我仍然有iOS模拟器的这个问题。 我的解决方案

  1. 卸载iOS项目
  2. 重新加载iOS项目
  3. 照常建造

当我改变模拟器设备时,我做了以上操作。