更新Xamarin Forms会导致在使用ReactiveUI时出现System.IO.FileNotFoundException - ReactiveUI.Winforms。

4

在我的项目中将Xamarin Forms包更新到3.4.0.1009999后,当使用ReactiveUI包中的WhenAnyValue时,我开始遇到一个System.IO.FileNotFoundException。API说明只要求包括ReactiveUIReactiveUI.XamFormsReactiveUI.Events.XamForms,而我已经这样做了。

尽管如此,我在这里遇到了无法加载文件或程序集'ReactiveUI.Winforms'或其某个依赖项

this.WhenAnyValue(x => x.DiscountSliderValue).Throttle(TimeSpan.FromMilliseconds(800)).Subscribe(CartManager.Instance.UpdateDiscountPercent);

添加 ReactiveUI.Winforms 包不起作用。

这段代码和打包已经在此项目中运行了6个月或更长时间,没有出现任何问题,所以这是一个新的问题。我花费了大量时间寻找答案,但是没有找到任何东西。

有什么想法是导致这个问题的原因吗?


你使用的是哪个版本的ReactiveUI?我刚刚加载了一个全新的项目,其中包含Xamarin.Forms 3.4.0.1009999和ReactiveUI 9.7.2。 - Rodney Littles
你确定没有任何一个包意外地引用了 ReactiveUI.Winforms 吗?因为这个库与 Xamforms 没有任何关系,也不需要它。Windows.Forms 是完全不同的技术栈。你能否搜索整个解决方案文件夹中的内容,查看是否存在遗漏或意外链接 "Winforms" 的情况? - Martin Zikmund
我的ReactiveUI包都是9.7.2版本,Xam Forms也是3.4.0.1009999版本。在整个项目中进行文件搜索,只显示csproj文件中的Nuget引用。 - Sev
1个回答

5
我遇到了同样的问题,但与另一个方向相反。Winforms正在要求XamForms dll,但没有任何东西引用XamForms
查看融合日志显示,在我的情况下,调用程序集是ReactiveUI,如下所示:
=== 预绑定状态信息 === LOG:显示名称= ReactiveUI.XamForms,Version=9.11.0.0,Culture=neutral,PublicKeyToken=null 调用程序集:ReactiveUI,Version=9.11.0.0,Culture=neutral,PublicKeyToken=null。
这对我来说毫无意义!
我找到的解决方法是关闭Visual Studio并删除整个.vs文件夹。有时该文件夹中的信息会变得损坏。我不能确定为什么或者即使这是真正的原因,因为它似乎不应该是这样,但对我来说似乎起作用。

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