記一次 Microsoft.Bcl.Async 使用經驗

cwsheng發表於2020-07-19

起因:

  由於公司專案使用場景存在很多的XP環境,導致使用.NET Framework版本不能大於4.0版本。最近開發新功能時;從nuget上下載一個開源dll(該dll 4.0 版本依賴 Microsoft.Bcl.Async 專案 )。本地編譯很開心輕鬆編譯通過,提交專案後同事編譯後各種報錯。就開啟後續系列旅程。

  

  過程問題 

   1、同事環境編譯失敗總是報錯。

   

      最終排查出引用的依賴dll提交到TFS中檔案不是對應使用版本的(.NET 4.0版本)

  2、編譯成功後專案引用後編譯引用專案報錯。

   

 

 

    該問題根據提示需要對相關專案瞭解

解決辦法:

  由於對Microsoft.Bcl.Async 不瞭解,那麼首先對該專案進行了相關了解: 

   穩定版本釋出:https://docs.microsoft.com/en-us/archive/blogs/bclteam/microsoft-bcl-async-is-now-stable 

   該包允許開發者在.NET 4、Silverlight 4和Windows Phone 7.5使用C# 5和VB中的非同步特性。該包由三個庫組成:Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build。由於使用了程式集統一的方式,解決方案中的所有工程都必須引用這三個庫。

  通過了解得到:

  1、Microsoft.Bcl.Async支援在.NET Framework4.0中可以使用async/await,而不需要把專案更改為 4.5版本.

  2、.NET Framework 4需要帶有KB2468871補丁

  3、引用依賴Microsoft.Bcl.Async專案的dll時,需要將Microsoft.Bcl,Microsoft.Bcl.Async和Microsoft.Bcl.Build的引用新增到上述警告的專案

總結:

  1、在專案引用DLL時,一定要細心檢查引用DLL的版本(非Nuget包管理方式)

   2、引用依賴Microsoft.Bcl.Async專案的程式集時,需要再該專案也新增Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build三個庫引用。  

 

引用:

  https://www.cnblogs.com/shanyou/archive/2013/04/27/3048181.html?utm_source=tuicool&utm_medium=referral

  https://docs.microsoft.com/en-us/archive/blogs/bclteam/microsoft-bcl-async-is-now-stable

 

相關文章