在【Xamarin+Prism小試牛刀:定制跨平臺Outlook郵箱應用】中提到過以下錯誤,不知道大伙還記得不:
無法安裝程序包“Microsoft.Identity.Client 1.0.304142221-alpha”。你正在嘗試將此程序包安裝到目標為“.NETPortable,Version=v4.5,Profile=Profile111”的項目中,但該程序包不包含任何與該框架兼容的程序集引用或內容文件。有關詳細信息,請聯系程序包作者。
不只是Microsoft.Identity.Client 有以上錯誤,有名的條形碼二維碼類庫ZXing.Net.Mobile等也只支持Profile7。那Profile是什么?Profile111又是什么了?今天一一為你揭秘。
PCL (Portable Class Library)
PCL是跨平臺代碼共享的一種設計方式,簡稱可移植類庫。Xamarin.Adroid,Xamarin.iOS.UWP都可以直接參照調用。主要是將平臺無關的業(yè)務代碼創(chuàng)建為PCL類庫,不過隨著MVVM框架的流行,Xamarin.Forms已經將View,ViewModel,Model都移植到了PCL類庫,部分平臺依賴比較強就分平臺實現。
Profile
PCL類庫對應的平臺集合不一樣,對應的Profile版本也不一樣。如果自定義的PCL類庫與Nuge上PCL包的Profile不一致,將導致開題的錯誤無法安裝。