【问题标题】:Updating Xamarin Forms causes System.IO.FileNotFoundException - ReactiveUI.Winforms when using ReactiveUI更新 Xamarin Forms 会导致 System.IO.FileNotFoundException - ReactiveUI.Winforms 在使用 ReactiveUI 时
【发布时间】:2019-02-28 00:23:57
【问题描述】:

在我的项目中将 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 加载了一个全新的项目
  • 你确定某些包没有意外引用ReactiveUI.Winforms吗?图书馆没有理由想要它,因为它与Xamforms 有也可以没有关系。 Windows.Forms 是一个完全不同的技术栈。您能否在整个解决方案文件夹内容中搜索“Winforms”以确保没有忘记或意外链接
  • 我的 ReactiveUI 包都是 9.7.2 以及 Xam Forms 3.4.0.1009999。进行项目范围的文件搜索仅显示 csproj 文件中的 Nuget 引用。

标签: c# xamarin.forms nuget reactiveui


【解决方案1】:

我遇到了同样的问题,但反过来。 Winforms 要求提供 XamForms dll,而此时不应引用 XamForms

检查融合日志显示在我的情况下调用程序集是 ReactiveUI,请参阅下面的修剪版本:

=== 预绑定状态信息 ===
日志:DisplayName = ReactiveUI.XamForms,版本 = 9.11.0.0,文化 = 中性,PublicKeyToken = null 调用程序集:ReactiveUI,Version=9.11.0.0,Culture=neutral,PublicKeyToken=null。

这对我没有任何意义!

我找到的解决方案是关闭 Visual Studio 并删除整个 .vs 文件夹。 有时该文件夹中的信息会损坏。我不能确定为什么或者即使这是真正的原因,因为它看起来不应该,但它似乎对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 2021-09-23
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多