netcore 1.0.1 缺少 .NET v4.0.0.0 但使用 v5.6

netcore 1.0.1 missing .NET v4.0.0.0 but using v5.6

我使用netcore 1.0.1,想打开一个MySqlConnection。 如果我使用 connection.Open() 我得到错误:

The type "DbConnection" is defined in a net referenced Assembly. Add a reference to the assembly"System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

(从德语翻译成英语)

在我的 project.json 我导入:`

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "net46",
        "portable-net45+win8"
      ]
    }`

这不起作用的原因是什么?我在 Nuget 包管理器中找不到任何东西。

imports 并没有像我怀疑的那样做 - 它实际上没有导入任何东西,但它说 "When you're trying to resolve a package, if it doesn't support my actual target framework, pretend that I'm targeting these frameworks"。您应该尽可能少地使用它——最好根本不用。任何时候你使用它,你都会冒着这种问题的风险。

DbConnection方面,需要依赖System.Data.Common包。您可能还需要其他软件包,但这是包含 System.Data.DbConnection.

的软件包

但是,如果您使用 6.10.1-beta 或 7.0.7-m61 版本,MySql.Data 软件包支持 netstandard1.6 - 在这种情况下,无论如何它都应该引入 System.Data.Common .

我建议你:

  • 删除 project.json
  • imports 部分
  • 更新到支持 .NET Core 的 MySql.Data 版本。 (6.9.9 没有。)
  • 最好更新到最终的 .NET Core SDK 并将您的 project.json 也迁移到 csproj