將 Xamarin.Android、Xamarin.iOS 和 Xamarin.Mac 項目升級至 .NET
若要將 Xamarin 原生項目升級至 .NET,您必須:
- 將您的項目檔更新為 SDK 樣式。
- 以 .NET 8 版本更新或取代不相容的相依性。
- 編譯及測試您的應用程式。
對於大部分的專案,您不需要變更命名空間或進行其他重寫。
若要簡化升級程式,建議您建立與 Xamarin 原生專案相同類型和名稱的新 .NET 專案,然後在程式碼中複製。 這是以下所述的方法。
建立新專案
在 Visual Studio 中,建立與 Xamarin 原生專案相同類型和名稱的新 .NET 專案。 例如,若要從 Xamarin.Android 升級至適用於 Android 的 .NET, 請選取 Android 應用程式 專案範本:
新的項目應該提供與您現有專案相同的專案和套件名稱,而且應該放在新的資料夾中。 開啟項目檔將會確認您有 .NET SDK 樣式專案:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-android</TargetFramework>
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
<OutputType>Exe</OutputType>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationId>com.companyname.AndroidApp2</ApplicationId>
<ApplicationVersion>1</ApplicationVersion>
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
</PropertyGroup>
</Project>
重要
目標 Framework Moniker (TFM) 是表示專案使用 .NET 的專案,在此案例中為 .NET 8。 對等 Xamarin 原生專案的有效TFM 為 net8.0-android、net8.0-ios、net8.0-macos 和 net8.0-tvos。 如需 SDK 樣式專案中目標架構的相關信息,請參閱 SDK 樣式專案中的目標架構。
啟動應用程式以確認您的開發環境可以建置應用程式。
合併檔案
將程式代碼和資源檔案從 Xamarin 原生專案的資料夾複製到新應用程式內的相同資料夾。 您應該覆寫同名的任何檔案。
如果您有其他連結庫專案,您應該將它們新增至新的方案,並從 新的 .NET 專案新增項目參考 。
您也需要將某些專案屬性從 Xamarin 原生專案複製到新的 .NET 專案,以進行條件式編譯自變數和程式代碼簽署等設定。 在個別的Visual Studio實例中並存開啟專案,可讓您比較項目屬性。 或者,您可以直接編輯新的項目檔來移轉設定。 如需詳細資訊,請參閱 Xamarin.Android 專案移轉 和 Xamarin Apple 專案移轉。
更新相依性
一般而言,除非已使用 .NET TFM 重新編譯 Xamarin 原生 NuGet 套件,否則與 .NET 8 不相容。 不過,適用於Android應用程式的 .NET 可以使用以 和 monoandroidXX.X
架構為目標的 monoandroid
NuGet 套件。
您可以查看 NuGet 上的 [Framework] 索引卷標,確認套件與 .NET 8 相容,並檢查它是否列出下表所示的其中一個相容架構:
相容的架構 | 不相容的架構 |
---|---|
net8.0-android、monoandroid、monoandroidXX.X | |
net8.0-ios | monotouch、xamarinios、xamarinios10 |
net8.0-macos | monomac、xamarinmac、xamarinmac20 |
net8.0-tvos | xamarintvos |
xamarinwatchos |
注意
與上述不相容架構沒有相依性的 .NET Standard 連結庫仍與 .NET 8 相容。
如果 NuGet 上的套件表示與上述任何相容架構的相容性,不論是否也包含不相容的架構,則套件相容。 您可以使用 Visual Studio 中的 NuGet 套件管理員,將相容的 NuGet 套件新增至 .NET 原生專案。
如果您找不到 .NET 8 兼容版本的 NuGet 套件,您應該:
- 如果您擁有程式代碼,請使用 .NETTFM 重新編譯套件。
- 尋找 .NET 8 版本的套件預覽版本。
- 將相依性取代為 .NET 8 兼容替代方案。
如需在適用於 Android 的 .NET 中移轉 Xamarin.Essentials 程式代碼或適用於 iOS 應用程式的 .NET 的詳細資訊,請參閱 在適用於 Android 的 .NET 中移轉 Xamarin.Essentials 程式代碼和適用於 iOS 應用程式的 .NET。
編譯和疑難解答
一旦解析您的相依性,而且您的程式代碼和資源檔會新增至 .NET 原生專案,您應該建置專案。 任何錯誤都會引導您進行後續步驟。
提示
- 在 Visual Studio 中開啟和建置專案之前,請先刪除所有 專案的 bin 和 obj 資料夾,特別是在變更 .NET 版本時。
- 從 Android 專案刪除Resource.designer.cs產生的檔案。