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>"
        }
    }
}

asyncReSharper はandの使用でエラーを出さないので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 に答える