2

我正在使用 VS2010 并使用 NuGet 安装Async CTP (Version 3, Unofficial)。然后我复制了一些示例代码:

using System.Threading.Tasks;

namespace ConsoleApplication5AsyncCtp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
        }

        public async Task<int> GetValue()
        {
            await TaskEx.Delay(100);
            return 13; // Return type is "int", not "Task<int>"
        }
    }
}

ReSharper 在使用asyncand时没有给出任何错误await(在我安装软件包之前它确实显示了错误),所以它看起来很有希望。但是当我构建项目时,我得到了一些我没想到的语法错误。

Program.cs(15,32): error CS1003: Syntax error, '(' expected
Program.cs(15,40): error CS1001: Identifier expected
Program.cs(17,32): error CS1031: Type expected
Program.cs(21,1): error CS1022: Type or namespace definition, or end-of-file expected

通过 NuGet 添加 Async CTP(版本 3,非官方)是否不足以实际编译代码?

我必须承认我不知道我在这里做什么,只是想让一些演示代码工作。演示解决方案通过 NuGet 自动安装 Async CTP,似乎表明我无需再做任何事情。

4

2 回答 2

4

NuGet 页面

Visual Studio Async CTP Samples 文件夹中的 AsyncCtpLibrary.dll

换句话说,它似乎只是支持库,而不是编译器。

我建议您只安装 .NET 4.5(足以从命令行玩转)或 Visual Studio 2012 的某些版本。CTP 中有各种错误 - 使用完整版本要好得多。

于 2012-10-02T13:41:12.423 回答
0

我认为你不能只使用 NuGet 的 AsyncCTP 包来开始开发 Async/Await 项目 - 你必须使用常规安装程序安装整个 AsyncCTP 。那是因为 AsyncCTP 需要更新的编译器,而不仅仅是这个库。

此外,如上所述,如果可能,您应该使用 Visual Studio 2012 和 .NET 4.5 或 Async Targeting Pack。如果您正在开发 Windows Phone 7.1 项目,则需要等到用于 VS2012 的公共 Windows Phone SDK 与更新的用于 Windows Phone 7.5 的 Async Targeting Pack 一起发布。

于 2012-10-04T08:08:04.437 回答