原由:html
因爲公司項目使用場景存在不少的XP環境,致使使用.NET Framework版本不能大於4.0版本。最近開發新功能時;從nuget上下載一個開源dll(該dll 4.0 版本依賴 Microsoft.Bcl.Async 項目 )。本地編譯很開心輕鬆編譯經過,提交項目後同事編譯後各類報錯。就開啓後續系列旅程。異步
過程問題: async
一、同事環境編譯失敗老是報錯。ui
最終排查出引用的依賴dll提交到TFS中文件不是對應使用版本的(.NET 4.0版本)spa
二、編譯成功後項目引用後編譯引用項目報錯。htm
該問題根據提示須要對相關項目瞭解blog
解決辦法:開發
因爲對Microsoft.Bcl.Async 不瞭解,那麼首先對該項目進行了相關了解: get
穩定版本發佈:https://docs.microsoft.com/en-us/archive/blogs/bclteam/microsoft-bcl-async-is-now-stable it
該包容許開發者在.NET 四、Silverlight 4和Windows Phone 7.5使用C# 5和VB中的異步特性。該包由三個庫組成:Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build。因爲使用了程序集統一的方式,解決方案中的全部工程都必須引用這三個庫。
經過了解獲得:
一、Microsoft.Bcl.Async支持在.NET Framework4.0中可使用async/await,而不須要把項目更改成 4.5版本.
二、.NET Framework 4須要帶有KB2468871補丁
三、引用依賴Microsoft.Bcl.Async項目的dll時,須要將Microsoft.Bcl,Microsoft.Bcl.Async和Microsoft.Bcl.Build的引用添加到上述警告的項目
總結:
一、在項目引用DLL時,必定要細心檢查引用DLL的版本(非Nuget包管理方式)
二、引用依賴Microsoft.Bcl.Async項目的程序集時,須要再該項目也添加Microsoft.Bcl、Microsoft.Bcl.Async和Microsoft.Bcl.Build三個庫引用。
引用:
https://docs.microsoft.com/en-us/archive/blogs/bclteam/microsoft-bcl-async-is-now-stable