在 Rider IDE 中调试时重新加载 WPF XAML?

Posted

技术标签:

【中文标题】在 Rider IDE 中调试时重新加载 WPF XAML?【英文标题】:Reloading WPF XAML while debugging in Rider IDE? 【发布时间】:2020-01-08 17:13:03 【问题描述】:

我正在尝试使用 JetBrains Rider IDE 使用 WPF 进行 Windows 开发。 (我在 30 天试用期的第 1 天。)

所以,当我运行(调试)我的应用程序时,我注意到屏幕上有些东西不对劲。

我从 Rider 中打开了相应的 XAML 文件,我对其进行了编辑,结果应该会产生很大的视觉差异,但我的应用程序屏幕上没有任何反应。我从 Rider 中保存了 XAML 文件,但我的应用程序仍然没有任何反应。我重新启动我的应用程序,然后我看到了更改。

使用 Visual Studio,每次我更改 XAML 时都会热重新加载它,因此我无需重新启动应用程序就可以看到我在做什么。虽然有问题,但总比没有好。

所以:

    Rider 有这个功能吗?

    有什么魔术可以实现它吗?

    我注意到在 Xamarin 的上下文中,Rider 似乎支持 XAML 的热重载,但我正在做 WPF,所以我认为这与我无关;我的假设对吗?

    DotNet 中是否有任何解决方案可以以编程方式 完成相同的事情? (例如,我单击我的应用程序上的一个按钮,我的应用程序以某种方式重新加载其 XAML。)

【问题讨论】:

作为记录,这个问题到目前为止已经收到了 1000 次浏览。 【参考方案1】:

目前,Rider 不支持任何 XAML 热重载技术。

在 2020.x 中,我们将发布 Xamarin 热重载功能。相关要求: https://youtrack.jetbrains.com/issue/RIDER-22664

但是对于 WPF,它要复杂得多 - 不可能在正在运行的应用程序中动态“替换”已编译的标记(Xamarin.Forms 可以)。所以我们必须构建增量差异并将它们应用到现有的可视化树上。

这是与您最相关的问题: https://youtrack.jetbrains.com/issue/RIDER-26302

【讨论】:

非常感谢您的回复。因此,这意味着上面的第 4 项可能是唯一没有附加明确“否”的选项。您或其他人对我如何才能完成第 4 项有任何建议吗? 如果你想在运行时重新加载你的应用程序的一部分,你可以尝试这样做:***.com/questions/910814/loading-xaml-at-runtime 但总体而言,这项任务要复杂得多。我想我们稍后会在 Rider 中实现它。 那太不幸了!我很难忍受 Visual Studio。 Hot Reload 似乎只适用于 Xamarin。可惜:(【参考方案2】:

正如 xtmq 所说,Rider 不支持任何 XAML 热重载技术。

但如果您也喜欢此功能,您可以在 YouTrack 上投票: https://youtrack.jetbrains.com/issue/RIDER-26302

【讨论】:

他们发现了一个重复:youtrack.jetbrains.com/issue/RIDER-26302

以上是关于在 Rider IDE 中调试时重新加载 WPF XAML?的主要内容,如果未能解决你的问题,请参考以下文章

JetBrains Rider IDE - 是不是可以调试 .Net Core 1.1.X?

Jetbrains Rider + Visual Studio WPF

JetBrains Rider 不显示 C# WPF 异常

Unity使用Rider作为IDE的体验

Xamarin.IOS(使用 Rider):每次加载 XCode 或运行模拟器时,创建的图像集都会消失

在 Rider IDE 中使用 .gitignore