4

我有一个类库项目(VS2012,.NET Framework 4.5)。我使用 NuGet 安装了 Rx Main 2.0.21114。编译给了我大量的性质警告:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): 警告 MSB3268: 主要参考“System.Reactive.Core, Version=2.0.20823.0, Culture=neutral, PublicKeyToken =f300afd708cefcd3, processorArchitecture=MSIL" 无法解析,因为它间接依赖于框架程序集 "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 在当前目标框架中无法解析. “.NETFramework,版本=v4.5”。要解决此问题,请删除引用“System.Reactive.Core, Version=2.0.20823.0, Culture=neutral, PublicKeyToken=f300afd708cefcd3, processorArchitecture=MSIL”或将您的应用程序重新定位到包含“System.Runtime, Version”的框架版本=4.0.0.0,文化=中立,

然后无法解析 Rx 程序集中的任何符号。我已经验证项目引用指向 Rx 安装下的 Net45 文件夹。我在 Google 上的点击率为零,所以我假设在 4.5 上使用 Rx 非常简单。关于是什么导致我遇到这个问题的任何想法?

4

4 回答 4

2

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

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

我不清楚您如何设法添加对它的引用,我自己无法完成。我只能猜测您以某种方式获得了对您之前安装在计算机上的旧版本(例如 20823)的引用,并且通过安装新版本得到了修改。像这样,鞋子合脚。

于 2012-12-14T11:54:59.613 回答
2

这通常意味着以某种方式引用了 Rx 4.0 DLL。核对引用并明确将它们指向 Rx 4.5 版本

于 2012-12-14T09:09:10.310 回答
2

好吧,事实证明这对我当前的机器/VS2012 安装有些古怪。我们在另一个开发盒上尝试了一个普通项目,在我的盒子上尝试了同一个项目;它在那里按预期工作,但在这里失败并显示相同的消息。我已经创建了一个新的虚拟机和开发环境,一切都如宣传的那样。

感谢您的建议。

于 2012-12-14T20:31:02.360 回答
1

这有时会发生在使用 Rx 的 F# 项目中,解决方法是引用System.ComponentModel.Composition您的项目。我认为便携式图书馆系统的怪癖。

于 2012-12-14T19:40:38.057 回答