如何在Xamarin.Forms UWP项目中使用HotReload功能

4

我已将 UWP 项目添加到我的 Xamarin.Forms 解决方案中。该页面顶部有一个链接,上面写着:可用的热重载

但当我更改 XAML 代码时并没有发生任何事情!据我所知,为了使用此功能,我不应添加任何额外的库或扩展。如何开启这个功能?


3
https://learn.microsoft.com/en-us/xamarin/xamarin-forms/xaml/hot-reload - Jason
@Jason您的评论就是答案。您能否发布一下,这样我可以标记它。 - Mironline
@Mironline,你尝试过16.8更新的重新加载吗? - magicandre1981
5个回答

9

编辑:我下面引用的文档现在说明,热重载现在已经在Xamarin Forms UWP应用程序中实现,除了iOS和Android之外。太好了!

我添加这个答案是希望它能节省其他人的时间,不再为为什么它不能为他们工作而感到困惑。

最初提出的问题的简短回答是,现在 Xamain Forms UWP项目并不支持热重载。

尽管在仿真器窗口顶部有一个误导性的“可用热重载”消息。

它可以为Xamarin Forms iOS和Android项目工作,并且可以为非Xamarin UWP项目工作。

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

http://learn.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
@Softlion 我猜他们最终为UWP实现了它。当我写这个答案的时候,它只是明确适用于Android和iOS。我会更新我的答案。 - terriblememory
不要更新,即使它说已经更新了,即使VS UI显示热重载已连接,它仍然不能正常工作。 - Softlion

2
无需额外安装或设置即可使用XAML热重新加载。它已经内置于Visual Studio中,可以在IDE设置中启用。一旦启用,您可以通过在模拟器、模拟器或物理设备上调试应用程序来开始使用XAML热重新加载。
在Windows上,可以通过在“工具”>“选项”>“Xamarin”>“热重载”中选中“启用Xamarin热重载”复选框来启用XAML热重新加载。
有关更多信息,请访问文档
此致敬礼。

2
首先,截至2019年8月15日,热重载仍处于预览阶段,并正在由社区进行测试,存在许多已知的错误和问题。
以下是使用热重载所需的最低要求:

Visual Studio 2019 版本16.3或更高版本

Visual Studio 2019 for Mac 版本8.3或更高版本

Xamarin.Forms 4.1或更高版本

现在您可以通过以下方式启用热重载:
在Windows上,可以通过在“工具 > 选项 > Xamarin > 热重载”中选中“启用Xamarin热重载”复选框来启用XAML热重载。
在Mac上,可以通过在“Visual Studio > 首选项 > 项目 > Xamarin热重载”中选中“启用Xamarin热重载”复选框来启用XAML热重载。

限制(已知)

在XAML热重载会话期间,无法添加、删除或重命名文件或NuGet包。
如果添加或删除文件或NuGet包,请重新构建和部署应用程序以继续使用XAML热重载。
将链接器设置为“无链接”可获得最佳体验。Link SDK仅设置大部分时间有效,但在某些情况下可能会失败。
在物理iPhone上调试需要解释器使用XAML热重载。在iOS构建设置中的“附加mtouch参数”字段中添加--interpreter以使用XAML热重载。
通过将控件分配给另一个使用其x:Name值的字段或属性创建的任何引用都不会重新加载。
在AppShell.xaml中更新Shell应用程序的可视层次结构可能会导致维护应用程序状态时出现问题。重新构建应用程序以继续重新加载。 XAML热重载无法重新加载C#代码,包括事件处理程序、自定义控件、页面代码后台和其他类。
有关更多信息,请参阅Hot Reload的官方文档。

我已经检查了链接。但是这个 hot-reload 只适用于 Windows 上的 Andriod 模拟器,我找不到在 WUP 项目中使用它的方法。 - Mironline
1
我不确定UWP模拟器是否已经完全支持,你可能需要将此错误添加到Bugzilla中。 - FreakyAli

2
“UWP项目的热重载功能已经随着稳定的16.8更新发布。”
“请确保您已启用了UWP。”

enter image description here

将模式设置为“仅更改”在工具 -> 选项 -> 调试 -> 热重载下。 Xamarin.Forms现在支持UWP的“仅更改”XAML热重载:在此版本中,我们开始推出对高度请求的功能的支持,该功能在针对UWP的Xamarin.Forms项目中启用了新的仅更改XAML热重载支持。请注意,此功能仍在开发中,虽然编辑XAML现在会触发正在运行的应用程序中的更新,但其他功能(例如应用内工具栏(元素选择等))尚未完全实现,但将在将来的版本中实现。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接