引用的Nuget包在查找系统类型时出错

时间:2015-12-14 11:23:05

标签: c# .net nuget assemblyversions

使用NuGet将第三方库添加到项目后,我有几个奇怪的错误。该项目的目标是.NET 4.5.2。 我得到的错误是标准系统类型不正确 例如

CS0012:类型' System.Collections.Generic.IEnumerable`1'在未引用的程序集中定义。您必须添加对程序集的引用,System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。

我已经清理了项目文件夹,删除了bin文件夹,重新安装了 NuGet包和读取参考无效。

图书馆是Remotion.Linq

根据注册表,机器上安装了以下.NET版本

v2.0.50727 2.0.50727.4927 SP2

v3.0 3.0.30729.4926 SP2

v3.5 3.5.30729.4926 SP1

V4
  客户端4.6.01038   完整的4.6.01038 V4.0
  客户端4.0.0.0

有谁知道这里发生了什么?

2 个答案:

答案 0 :(得分:0)

这表明第三方图书馆的目标是4.0。您需要找到更高版本的库,或者在项目属性中将目标框架设置为4.0而不是4.5

答案 1 :(得分:0)

这被证明是一个误导性的错误。该库是针对.NET 4.5.2构建的,但我安装了.NET 4.5.1。 Microsoft在a KB article(KB2971005)中对此进行了解释,但您确实需要知道如何轻松找到该文章的问题。经过大量的搜索后,我偶然发现了它。

解决方法是安装Microsoft .NET Framework 4.5.2开发人员包的更新版本。