是否可以将BackgroundWorker类与.net核心一起使用?

时间:2016-12-16 18:29:15

标签: c# .net .net-core

我正在尝试将在Windows上运行良好的C#控制台项目移植到使用.NET Core的Linux。 我创建了一个project.json文件,运行dotnet restore,一切似乎都运行正常。 但是当我运行dotnet build时,我收到了这条消息:

  

无法找到类型或命名空间名称“BackgroundWorker”(是   你错过了使用指令或程序集引用?)

根据.NET Core API,类BackgroundWorker似乎存在于System.ComponentModel中。

这是我的project.json:

"version": "1.0.0-*",
  "buildOptions": {
  "debugType": "portable",
  "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }

我错过了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

您需要将System.ComponentModel.EventBasedAsync nuget包作为依赖项(而不是System.ComponentModel nuget包)。如果您查看BackgroundWorker.cs file on GitHub,就可以看到它嵌套在System.ComponentModel.EventBasedAsync命名空间下。

你的project.json看起来像这样:

  "version": "1.0.0-*",
  "buildOptions": {
  "debugType": "portable",
  "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        },
        "System.ComponentModel.EventBasedAsync": "4.3.0"
      },
      "imports": "dnxcore50"
    }
  }