将项目中的Xamarin Forms程序包更新为3.4.0.1009999后,使用ReactiveUI程序包中的WhenAnyValue时,我开始获取System.IO.FileNotFoundException. API说明仅说包括我拥有的ReactiveUI,ReactiveUI.XamForms和ReactiveUI.Events.XamForms.
尽管如此,我仍然无法在此处加载文件或程序集“ ReactiveUI.Winforms”或其依赖项之一:
this.WhenAnyValue(x => x.DiscountSliderValue).Throttle(TimeSpan.FromMilliseconds(800)).Subscribe(CartManager.Instance.UpdateDiscountPercent);
不幸的是,添加ReactiveUI.Winforms包没有帮助.
这是已在该项目中工作6个月或更长时间且没有任何问题的代码和打包,因此这是一个新问题.我花了大量时间寻找答案,却一无所获.
关于原因有什么想法吗?
解决方法:
我遇到了同样的问题,但反过来说.当什么都不应引用XamForms时,Winforms要求提供XamForms dll.
检查融合日志,以我为例,调用程序集是ReactiveUI,请参见下面的修整版本:
=== Pre-bind state information ===
LOG: DisplayName = ReactiveUI.XamForms, Version=9.11.0.0, Culture=neutral, PublicKeyToken=null
Calling assembly : ReactiveUI, Version=9.11.0.0, Culture=neutral, PublicKeyToken=null.
这对我没有任何意义!
我发现的解决方案是关闭Visual Studio并删除整个.vs文件夹.
有时,该文件夹中的信息已损坏.我不能肯定地说这是为什么或什至是真正的原因,因为它似乎不应该如此,但它似乎对我有用.