发行版中忽略了 RoutingEffect

RoutingEffect ignored in Release

我在我的 PCL 中创建了一个 RoutingEffect 并在我的 UWP 项目中匹配了 PlatformEffect。我在派生自 ContentView.

的自定义控件的构造函数中将 RoutingEffect 添加到 Effects 集合

当应用程序处于 运行 调试状态时,这一切都很好用。如果我切换到 Release,则不会附加效果。如果我在 RoutingEffect 的构造函数中添加断点,则会收到一条消息:

当前不会命中断点。没有调试器目标代码类型的可执行代码与此行相关联。可能的原因包括:条件编译,编译器优化,或者当前调试器代码类型不支持该行的目标架构。

如果我在所有项目的项目属性中取消勾选 "Optimize code",那么 RoutingEffect 的构造函数确实会被命中,但是 PlatformEffect 中的 OnAttached 仍然不会'不要被击中。

为什么在行为上存在这种差异以及如何让它在 Release 中正常工作?

包含 PlatformEffects 的程序集需要在 UWP 项目的 Forms.Init 重载中明确指定,详见:

https://forums.xamarin.com/discussion/83507/uwp-platformeffect-does-not-get-attached-when-in-release-build#latest

https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/#Troubleshooting