2016-12-16 14 views
2

Windows上で.NETコアのLinuxにうまく動作するC#コンソールプロジェクトを移植しようとしています。 私はproject.jsonファイルを作成し、dotnetのリストアを実行して、すべて正常に動作しているようです。 しかし、私はDOTNETのビルドを実行したとき、私はこのメッセージが表示されます。.netコアでBackgroundWorkerクラスを使用することはできますか?

型または名前空間名「BackgroundWorkerのは」が見つかりませんでした(?あなたがusingディレクティブまたはアセンブリ参照が不足して ある)

.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

私は何かが欠けていた場合、私はわからないんだけど...なぜあなたはあなたのproject.jsonを投稿したのですか? – RandomStranger

+3

'BackgroundWorker'は、WinFormsとWPFのために構築されたようです - コンソールプログラムでは、生のスレッドを使うこともできます。しかし、セクシーな新しい置換は、タスク並列ライブラリ(すなわち、 'System.Threading.Tasks'名前空間)です。代わりにそれを使うことを考えましたか? – Dai

+0

適切な[package](https://www.nuget.org/packages/System.ComponentModel/)もインストールする必要があります。 .NET Frameworkとは異なり、これらの「システムアセンブリ」は通常はありません。 .NET Coreははるかにモジュール化されています。 –

答えて

3

System.ComponentModel.EventBasedAsyncナゲットパッケージを依存関係として含める必要があります(System.ComponentModelナゲットパッケージではありません)。 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" 
    } 
    } 
関連する問題