【问题标题】:How to use HotReload feature in Xamarin.Forms UWP project如何在 Xamarin.Forms UWP 项目中使用 HotReload 功能
【发布时间】:2019-12-21 13:05:12
【问题描述】:

我已将UWP 项目添加到我的Xamarin.Forms 解决方案中。页面顶部有一个链接,上面写着:Hot Reload Available

但是当我更改XAML 代码时没有任何反应!。据我检查,对于此功能,我不应该添加任何额外的扩展库。我怎样才能打开这个功能?

【问题讨论】:

标签: xamarin xamarin.forms uwp hot-reload


【解决方案1】:

编辑:我在下面引用的文档现在指出,除了 iOS 和 Android 之外,现在还为 Xamarin Forms UWP 应用程序实现了热重载。耶!

我添加这个答案是希望它可以节省其他人一些时间想知道为什么它不适合他们。

对最初提出的问题的简短回答是,现在

热重载不适用于 Xamarin Forms UWP 项目。

尽管模拟器窗口顶部出现误导性的“Hot Reload available”消息。

它适用于 Xamarin Forms iOS 和 Android 项目,并且适用于 非 Xamarin UWP 项目。

这是记录在案的,下面几段:

http://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/hot-reload

如果你想让它受到更多关注,我建议你投票赞成:

https://developercommunity.visualstudio.com/content/idea/661682/xaml-hot-reload-for-xamarinforms-on-uwp.html

【讨论】:

  • 明确写明支持。
  • @Softlion 我猜他们终于为 UWP 实现了它。在我写这个答案的时候,这个答案是明确的,只有 Android 和 iOS。我会更新我的答案。
  • 不要更新,它仍然不起作用,即使它说它可以,即使 VS UI 说热重载已连接。还是不行。
【解决方案2】:

UWP 项目的 Hotreload 已随稳定的 16.8 更新发布。

确保您已启用 UWP

并在Tools -> Options -> Debugging -> Hot Reload下将模式设置为“仅更改”

Xamarin.Forms “仅更改” XAML 热重载现在支持 UWP:在此 发布我们开始推出对高度要求的功能的支持 启用新更改仅支持 XAML 热重载 面向 UWP 时的 Xamarin.Forms 项目。请注意此功能是 仍在开发中,在编辑 XAML 时现在将触发更新 在正在运行的应用程序中的其他功能,例如应用程序内工具栏(元素 选择等)尚未完全实施,但将在 未来版本。

【讨论】:

    【解决方案3】:

    XAML 热重载仅在 iOS 或 Android 上调试时有效。

    检查文档: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/hot-reload

    【讨论】:

      【解决方案4】:

      首先,截至 19 年 8 月 15 日,Hot Reload 仍处于预览阶段,并且正在接受社区测试,并且存在大量已知错误和问题。

      以下是您能够使用热重载的最低要求

      Visual Studio 2019 16.3 或更高版本

      Visual Studio 2019 for Mac 8.3 或更高版本

      Xamarin.Forms 4.1 或更高版本

      现在您可以通过以下方式启用热重载:

      在 Windows 上,可以通过选中 Tools > Options > Xamarin > Hot Reload 中的 Enable Xamarin Hot Reload 复选框来启用 XAML Hot Reload。

      在 Mac 上,可以通过选中 Visual Studio > Preferences > Projects > Xamarin Hot Reload 中的 Enable Xamarin Hot Reload 复选框来启用 XAML Hot Reload。

      限制(已知)

      您不能在 XAML 热重载会话期间添加、删除或重命名文件或 NuGet 包。

      如果您添加或删除文件或 NuGet 包,请重新构建并重新部署您的应用以继续使用 XAML 热重载。

      将链接器设置为“无链接”以获得最佳体验。 Link SDK only 设置在大多数情况下都有效,但在某些情况下可能会失败。

      在物理 iPhone 上进行调试需要解释器使用 XAML 热重载。将 --interpreter 添加到 iOS 构建设置中的 Additional mtouch arguments 字段以使用 XAML 热重载。

      通过使用其 x:Name 值将控件分配给另一个字段或属性而创建的任何引用都不会被重新加载。

      在 AppShell.xaml 中更新 Shell 应用程序的可视层次结构可能会导致在维护应用程序状态时出现问题。重建应用程序以继续重新加载。 XAML Hot Reload 无法重新加载 C# 代码,包括事件处理程序、自定义控件、页面代码隐藏和其他类。

      以后可以参考Hot Reload的官方文档

      【讨论】:

      • 我已经检查了链接。但是这个hot-reload 可以在 Windows 中与 Andriod 模拟器一起使用,但我可以在 WUP 项目中找到使用它的方法。
      • 我不确定是否完全支持 uwp 模拟器,我想您可能想将此错误添加到 Bugzilla。
      【解决方案5】:

      使用 XAML 热重载不需要额外的安装或设置。它内置在 Visual Studio 中,可以在 IDE 设置中启用。启用后,您可以通过在模拟器、模拟器或物理设备上调试您的应用程序来开始使用 XAML 热重载。

      在 Windows 上,可以通过选中工具 > 选项 > Xamarin > 热重载中的启用 Xamarin 热重载复选框来启用 XAML 热重载。

      欲了解更多信息,请访问documentation

      最好的问候。

      【讨论】:

        猜你喜欢
        • 2022-07-22
        • 2017-03-03
        • 2016-11-22
        • 2019-03-17
        • 2016-10-27
        • 1970-01-01
        • 2019-10-05
        • 2020-03-12
        • 1970-01-01
        相关资源
        最近更新 更多