如何修复错误:“CS0012类型'任务'是在未引用的程序集中定义的。”

时间:2016-09-20 13:30:19

标签: c# .net async-await task-parallel-library

项目构建成功非常奇怪,但在Visual Studio 2015中出现了这个错误:

  

错误CS0012“任务”类型在未引用的程序集中定义。您必须添加对程序集'System.Threading,Version = 1.0.2856.102,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'的引用。

以下是我的工作:

  1. 我在VS2015 Update3中创建了一个名为Library的类库项目(.Net Core),并按如下方式更改project.json

    {
      "version": "1.0.0-*",
      "frameworks": {
        "net35": {
          "dependencies": {
            "TaskParallelLibrary": "1.0.2856",
            "AsyncBridge.Net35": "0.2.0"
          }
        },
        "net40": {
          "dependencies": {
            "Microsoft.Bcl.Async": "1.0.168"
          }
        }
      }
    }
    

    Library是多目标net35和net40,并且依赖于一些软件包,因此我们可以在net35和net40中使用asyncawait

  2. 添加课程Foo

    using System;
    using System.Threading;
    using System.Threading.Tasks;
    namespace Library {
        public class Foo {
            public async Task Bar() {
                await Task.Factory.StartNew(() => {
                    Console.WriteLine("bar");
                }, new CancellationTokenSource().Token);
            }
        }
    }
    
  3. 使用SomeApp创建另一个名为project.json的类库项目(.Net Core):

    {
      "version": "1.0.0-*",
      "dependencies": { "Library": "1.0.0" },
      "frameworks": {
        "net35": {
          "dependencies": {
            "TaskParallelLibrary": "1.0.2856",
            "AsyncBridge.Net35": "0.2.0"
          }
        },
        "net40": {
          "dependencies": {
            "Microsoft.Bcl.Async": "1.0.168"
          }
        }
      }
    }
    

    SomeApp引用了Library

  4. App项目中添加课程SomeApp

    using Library;
    using System.Threading.Tasks;
    namespace SomeApp {
        public class App {
            public async Task DoWork() {
                var foo = new Foo();
                await foo.Bar();
            }
        }
    }
    

    App正在调用Foo.bar()

  5. 它可以构建两个项目,并且在编译期间没有任何问题,但是如果在VS2015中的解决方案资源管理器中单击App.cs项目中的SomeApp,错误列表中出现错误:

    enter image description here

    那么我该如何修复错误?这是Visual Studio的错误吗?

0 个答案:

没有答案