2013-03-15 44 views
5

Microsoft已更新.net 4.0的異步/等待目標定位,現在建議使用nuget上的Microsoft.Bcl.Async庫。異步等待目標4.0部署要求

在發行說明中,它聲明.net 4與KB 2468871是必需的。

  1. 是KB2468871構建要求還是部署要求?
  2. KB2468871的哪個方面使其成爲必需?
+0

我想這是一個部署要求。請注意,ASP.NET *需要* .NET 4.5; .NET 4.0支持僅適用於桌面應用程序。 – 2013-03-15 21:40:26

+0

@StephenCleary,是的,這是一個桌面應用程序,XP支持仍然是一個需求。 – Dan 2013-03-15 21:56:17

+3

閱讀發行說明之後,我猜測這是必要的,因爲功能5:支持PCL。 – 2013-03-15 22:08:20

回答

2

http://support.microsoft.com/kb/2468871/en-us

功能5名更改到支持便攜式庫引用。這些更改 包括API更新和活頁夾修改。此更新使 CLR可以成功綁定到便攜式庫,以便單個DLL 可以在.NET Framework 4上,在Silverlight上,在Xbox上或在Windows Phone上運行。此更新將公共Silverlight API添加到.NET Framework 4中的相同位置。 API簽名在整個平臺上將保持一致 。所有修改都是100% 兼容,不會破壞任何現有的代碼。

事實證明,如果沒有這個KB安裝Microsoft.Bcl崩潰(它試圖綁定到Silverlight的System.Core庫,該庫不在系統上)

+0

自從它作爲答案發布以來接受,但Stephen Cleary已在問題評論中回答了此問題。 – Dan 2013-08-11 11:01:48

0

發行說明細節:

針對任何的以下平臺(或更高版本)時:

• .NET Framework 4.0 (with KB2468871) 

因此,這意味着你 '定位' 4.0 w/KB2468871中的KB2468871必須部署在目標計算機上才能支持該庫。

沒有關於Microsoft.Bcl.Async需要KB2468871的哪些部分的詳細信息。我建議您聯繫BCL團隊,發佈到博客,或聯繫Nuget包所有者以獲取更多詳細信息。我不清楚這是需要什麼知道KB的部分會有所作爲...

2

使用異步/地等待着.NET中唯一安全的方法4.0在不安裝KB2468871的情況下支持xp用戶正在vs 2010 SP1,nuget microsoft bcl async中安裝異步CTP v3,並實現自己的AsyncTaskMethodBuilder和AsyncVoidMethodBuilder。 (並刪除異步ctp dll參考)

這是唯一的方法.net4,vs 2010中的任何非異步CTP異步實現,沒有安裝VS 2012,NET 4.5或KB2468871將工作。

任何其他準備使用的.net4異步實現在那裏使用了編譯過程中實現和橋接異步代碼的新方式,這就是爲什麼你需要安裝異步CTP,它是.net4的唯一異步實現,修改csc編譯器以支持它。

微軟已經改變了c#5和.net 4.5中使用的類型編譯器來生成異步代碼,基本上它們可以輕鬆完成.net4,但是他們選擇強制任何人安裝vs 2012和.net 4。5,這對於那些需要支持XP用戶的公司來說是不可接受的,因爲你將無法查看和修復.net 4.5中修復的任何.net 4錯誤。

Microsoft.Bcl.Async,AsyncTargetingPack,AsyncBridge如果沒有安裝.net 4.5或Microsoft .NET Framework 4.0或KB2468871,它們都無法運行。

如果你自己實現AsyncTaskMethodBuilder和AsyncVoidMethodBuilder,它們都可以工作,你甚至可以從async ctp v3複製/粘貼它的實現,只需稍作修改,它就可以工作。

所以如果你真的擔心部署需求和其他與支持XP用戶有關的事情,我強烈建議這樣做是我描述的。

+0

謝謝。發佈相同我的答案[這裏](http://stackoverflow.com/questions/16062590/async-ctp-not-working-in-vs-2010-sp1/16228189#16228189),[here](http:// stackoverflow.com/questions/16074401/asynchronous-programming-with-async-and-await/16097562#16097562)和[here](http://stackoverflow.com/questions/15338907/where-can-i-find-a -tpl-數據流版本換4-0/15972581#15972581)。所有降低的投票 – 2013-10-09 01:08:15