我正在尝试将在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"
}
}
我错过了什么吗?
谢谢!
答案 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"
}
}