Xamarin.Mac 的目標 Framework

本文涵蓋 Xamarin.Mac 可用的目標架構(基類連結庫),以及在您的 Xamarin.Mac 專案中使用這些架構的影響。

Target framework options for Xamarin.Mac

背景

每個 .NET 程式或連結庫都取決於基類庫 (BCL) 所提供的功能。 此 BCL 包含 mscorlib、System、System.Net.Http 和 System.Xml 等元件,可提供所有 .NET 語言內建的通用功能。

多年來,已開發多個不同版本的此 BCL,已針對不同的使用案例進行優化。 「桌面」BCL 包含一組更豐富的連結庫,對於其他使用案例而言可能太重量級,而行動裝置則著重於確保 API 可以安全地進行連結,這樣會移除未使用的程式代碼以減少應用程式使用量。

這些不同目標架構的其中一個更重要的反響,就是指定程式中 的所有元件都必須 以相容的 BCL 元件為目標。 如果情況並非如此,您可能會有兩個元件連結至不同版本的 System.dll 不同意指定類型的簽章。 共用連結庫可以目標 為 .NET Standard 2,這是目標 Framework 的一般子集,或是特定的目標架構。

Xamarin.Mac 有三個目標 Framework 選項可供使用,各有不同的優點和取捨:

  • 新式 (在舊版檔中稱為行動裝置) – 與支援 Xamarin.iOS 的子集非常類似,針對效能和大小進行高度微調。 此目標 Framework 是安全的連結器,因此這些專案可藉由移除未使用的程式代碼大幅降低其最終使用量。

  • 完整 (在舊版檔中稱為 XM 4.5) – 與「桌面」BCL 非常類似的子集,但有一些小型移除專案。 由於目標 Framework 幾乎與 net45 相同(及更新版本),因此可以輕鬆地取用許多未提供 netstandard2 或特定 Xamarin.Mac 組建的 nuget。 不過,由於 System.Configuration 使用方式,它與連結不相容。

  • 不支援 (在舊版檔中稱為系統) – 不要連結至 Xamarin.Mac 提供的 BCL,而是使用目前安裝的 mono 系統。 這提供一組最完整的元件,包括一些已知有問題的元件(例如 System.Drawing)。 此選項只存在「最後手段」,強烈建議在使用它之前耗盡其他選項。 顧名思義,官方支援通道不支援使用方式。

設定目標架構

若要變更為 Xamarin.Mac 項目的目標 Framework 類型,請執行下列動作:

  1. 在 Visual Studio for Mac 中開啟 Xamarin.Mac 專案。

  2. 在 [方案總管] 中,按兩下專案檔以開啟 [專案選項] 對話方塊。

  3. 從 [一般] 索引標籤中,選取符合您應用程式需求的目標 Framework 類型

    Using the Project Options window to choose a target framework

  4. 按一下 [確定] 按鈕以儲存您的變更。

切換目標 Framework 類型之後,您應該 清除重建 Xamarin.Mac 專案。

摘要

本文簡要說明 Xamarin.Mac 應用程式可用的不同類型的目標架構(基類連結庫),以及何時應使用每種架構類型。