2012-12-11 45 views
3

我使用VS2012和我的項目是4.0,但我想使用async/await關鍵字,所以我安裝Microsoft.Bcl.Async。c#4.0和異步與Microsoft.Bcl.Async。我沒有所有類型的異步修改

我嘗試實施下列方式我的異步方法:

public async Task<bool> myMethodAync(int paramInteger) 
{ 
    //my code, a simple code that return a bool. Is only an example 
    if(paramInteger == 2) 
    { 
     return true; 
    } 
    else return false; 

} 

我得到一個錯誤,我得到標方法的名稱和錯誤說是這樣的:它沒有找到所有修改異步所需的類型。是項目的目標是錯誤的版本,還是缺少某個程序集的參考?

我有三個程序集Microsoft.Threading.Task,Microsoft.Threading.Task.Extensions和Microsoft.Threading.Task.Extensions.Desktop的參考,我在我的類System.Threading.task中有使用。

我還需要做什麼?

謝謝。

+0

你可以使用4.5嗎? –

回答

4

http://michaelmairegger.wordpress.com/2012/09/19/cannot-find-all-types-required-by-the-async-modifier/

解決這個問題是要參考以下NuGet包到要在其中使用「異步」和「等待」關鍵字的所有項目。

Microsoft.CompilerServices.AsyncTargetingPack

所以,右鍵單擊References,然後選擇Manage NuGet Packages...,然後在網上搜索。您可以在名稱爲的Visual Studio 11的Async Targeting Pack下找到該軟件包。安裝它,問題應該解決。

+0

我所做的是在我的解決方案(我有很多項目)中安裝Microsoft.Bcl.Asyn,並且當我嘗試安裝包含問題項目的包時,它說已安裝。所以這就是爲什麼我手動添加參考,我如何在我的帖子中講述的。 –

+1

如果我可以多次註冊這個遊戲,我會!謝謝! –