关于system.reactive:在.NET Framework 4.5中使用Rx有一些技巧吗?

Is there some trick to using Rx from .NET Framework 4.5?

我有一个类库项目(vs2012,.NET Framework 4.5)。1安装2.0.21114 RX nuget主使用。给我一个1994:14 of warnings编译:《自然

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3268: The primary reference"System.Reactive.Core, Version=2.0.20823.0, Culture=neutral, PublicKeyToken=f300afd708cefcd3, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly"System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework.".NETFramework,Version=v4.5". To resolve this problem, either remove the reference"System.Reactive.Core, Version=2.0.20823.0, Culture=neutral, PublicKeyToken=f300afd708cefcd3, processorArchitecture=MSIL" or retarget your application to a framework version which contains"System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".

然后没有任何符号来解决从接收组件。我有了这样一个项目的引用指向的是net45 RX安装文件夹下。我已经在零点击谷歌,所以我以为这是很简单的使用,在RX 4.5。任何的想法是什么,对这个问题我吗?


事实证明,我目前安装的机器/VS2012有些古怪。我们在另一个dev-box上尝试了一个普通的项目,在我的box上也尝试了相同的项目;它在那里的工作和预期一样,但是在这里的消息相同,失败了。我已经构建了一个新的虚拟机和开发环境,一切都如广告所示。

谢谢你的建议。


首先,请注意错误消息(2.0.20823.0)中的Rx版本与您在问题(2.0.21114)中提到的版本不匹配。20823是4个版本。

更相关的是,System.Runtime是一个在可移植类库和Windows应用商店中使用的程序集。这与您的目标不匹配,您选择了完整的框架。它与我从Nuget看到的不匹配,我只看到Rx的商店版本。

我不清楚你是如何添加一个引用的,我自己也做不到。我只能猜测,你在某种程度上得到了一个旧版本的参考,你之前安装在你的机器上(如20823),这是通过安装新版本得到的。像那样,这双鞋很合脚。


这通常意味着不知何故,Rx4.0 DLL被引用。对引用进行核处理,并将其明确指向RX 4.5版本


这有时发生在使用RX的f_项目中,修复方法是将System.ComponentModel.Composition引用到您的项目中。我想是便携式图书馆系统的怪癖吧。