簡體   English   中英

Xamarin.Forms 程序集引用

[英]Xamarin.Forms assembly references

我正在為 Android 和 iOS 開發 Xamarin.Forms 應用程序。 pcl 項目增長了很多,並且安裝了許多 nuget 包,如 FluentValidation、SQlite 和 Newtonsoft.Json。 特定於平台的項目只有幾行代碼,例如自定義渲染器和其他東西。 他們唯一的引用是 SQlite。

現在這在為 Android 編譯時工作得很好。 但是,在嘗試為 iOS 構建時,出現錯誤 -> 無法解析引用 ( System.EnterpriseServices.Wrapper.dll )。

我的問題不是針對這個 dll,而且我想知道它是如何真正工作的。 我假設,我可以將我想要的任何包安裝到 pcl 項目中。 有限制嗎? 包是否必須與 Xamarin.iOS/Xamarin.Android 兼容? 我如何能夠跟蹤 dll 的實際來源?

為什么它適用於 Android 而不適用於 iOS?

是的,平台之間存在限制。 您在 PCL 項目中使用的不同程序集和/或 nuget 包需要與您的目標平台兼容。

原因很簡單:當您構建 iOS 項目時,PCL 項目也在為 iOS 目標構建,因此程序集需要兼容。 程序集只是一個子集。

Xamarin.iOS、Xamarin.Android 和 Xamarin.Mac 都附帶十多個程序集。 正如 Silverlight 是桌面 .NET 程序集的擴展子集一樣,Xamarin 平台也是多個 Silverlight 和桌面 .NET 程序集的擴展子集。

當你想使用一個只兼容android的程序集時,將它添加到android-project而不是PCL項目中。

您可以在 Xamarin 開發人員頁面上找到包含平台支持的程序集的列表。

在此列表中,您可以看到System.EnterpriseServices.dll僅適用於 android 而不適用於 iOS。 此外,您可以在此頁面上的 iOS 平台上找到使用 SQLite/ System.Data一些限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM