【问题标题】:Referenced Nuget package has errors finding system types引用的 Nuget 包在查找系统类型时出错
【发布时间】:2016-03-19 20:40:59
【问题描述】:

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

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

我已经清理了项目文件夹,删除了 bin 文件夹,重新安装了 NuGet包和readed引用无济于事。

图书馆是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

有人知道这里发生了什么吗?

【问题讨论】:

    标签: c# .net nuget assemblyversions


    【解决方案1】:

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

    解决方法是安装 Microsoft .NET Framework 4.5.2 Developer Pack 的更新版本。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        • 2017-03-25
        相关资源
        最近更新 更多