我正在使用 Visual Studio 2017 v15.3.3。我的 UWP 项目针对的是 Windows Creators Update 15063,我的 Nuget 包如下:
我的解决方案构建没有错误,并且运行良好,但是由于我的代码隐藏和/或 ViewModel 代码正在引用 NuGet 包这一事实,我在我的 UWP 应用程序项目中的设计时遇到了错误。这就是我所看到的:
这个问题不是 System.Reactive 独有的。我在 Newtonsoft.Json v10.0.3 包中遇到了一个不同的(但看似相关的)错误:
Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The bound assembly has a version that is lower than that of the request. (Exception from HRESULT: 0x80132000)
有趣的是,将 System.Reactive 降级到v3.0.0并不能解决问题:错误声称系统找不到v3.0.0程序集。
最新 AutoMapper 包(v6.1.1)的类似问题
要重现问题:
- 创建一个新的 UWP 项目(目标是什么,似乎无所谓)
- 创建一个新的
UserControl
- 例如,在此 UserControl 的构造函数中,添加一些引用任何这些包的代码,
var s = new Subject<int>();
然后添加using System.Reactive.Subjects;
- 在 MainPage.xaml 中将该用户控件添加为 XAML 元素
- 编译并注意错误
...或在此处查看此示例
令人沮丧的是,几周前在 Visual Studio 2015 中切换到 VS 2017 之前,这 3 个大包(System.Reactive、Newtonsoft.Json、AutoMapper)在我的 UWP 项目中都运行良好。
到目前为止唯一有效的是将 Newtonsoft.Json 从最新的 v10.0.3 降级到 v9.0.1(降级到 v10.0.2 或 10.0.1 不起作用)。不幸的是,我无法降级 System.Reactive,因为它们的未列出版本低于 3.0
我还尝试过修复我的 VS 安装,以及安装 mobile/xamarin 组件。
任何解决方法或见解将不胜感激,因为这对我来说是一个阻塞问题,谢谢!