您必须添加对程序集mscorlib的引用,版本= 4.0.0

时间:2016-05-26 18:31:47

标签: c# linq asp.net-core .net-core

我在将Web项目从RC1迁移到RC2时遇到了一些麻烦。当我切换时,我在整个项目中遇到了一堆这些错误。

  

类型'Func<,>'在未引用的程序集中定义。您必须添加对程序集'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'

的引用

看起来所有linq函数和lambda表达式都不起作用。

这就是我的project.json文件:

  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "System.Linq": "4.1.0-rc2-24027"
      },
      "imports": [ "net451", "portable-net45+win8" ]
    }
  },
  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
    "Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "System.ComponentModel.Annotations": "4.1.0-*"
  }

任何想法意味着什么?我试过运行dotnet restore,没有帮助。

6 个答案:

答案 0 :(得分:75)

我遇到了同样的问题,并将以下软件包添加到我的project.json依赖项中,为我修复了它:

"Microsoft.NETCore.Portable.Compatibility": "1.0.1-rc2-24027",

此软件包支持与基于mscorlib的PCL兼容。

答案 1 :(得分:35)

事实上,问题是需要asp.net 4.0或4.5版本(低于Core)的旧库。

Microsoft通过安装暂停的NuGet软件包为其提供了解决方案。

  

Microsoft.NETCore.Portable.Compatibility

通过这种方式,您可以使用旧库运行代码。

答案 2 :(得分:3)

当我使用类库(.NET标准)模板创建一个新项目时,我收到了此错误,并将一些代码移植到我想要重用的代码中。

我创建了一个新项目类库(.NET Framework),并将代码移到那里,它没有任何问题。

答案 3 :(得分:2)

删除解决方案文件夹中的 .csproj.user as per in the Screenshot。 从解决方案资源管理器卸载项目。 重新加载项目并构建一次。这对我有用。

答案 4 :(得分:0)

我没有评论代表,但Matt Kemp的帖子引导了我的解决方案。就我而言,它使用的是类库(.Net标准),而不是 Android类库(Xamarin)

答案 5 :(得分:0)

mscorlib 引用是默认添加的,但它似乎是一个 Visual Studio 引用问题。我已经删除了我的项目并创建了一个新项目,然后它工作正常。