Mettre à niveau des projets Xamarin.Android, Xamarin.iOS et Xamarin.Mac vers .NET
Pour mettre à niveau vos projets natifs Xamarin vers .NET, vous devez :
- Mettre à jour votre fichier projet pour en faire un fichier de style SDK.
- Mettre à jour ou remplacer les dépendances incompatibles avec les versions .NET 8.
- Compiler et tester votre application.
Pour la plupart des projets, vous n’avez pas besoin de modifier les espaces de noms ni d’entreprendre d’autres réécritures.
Pour simplifier le processus de mise à niveau, nous vous recommandons de créer un projet .NET du même type et du même nom que votre projet natif Xamarin, puis de le copier dans votre code. Cette approche est décrite ci-dessous.
Créer un projet
Dans Visual Studio, créez un nouveau projet .NET du même type et du même nom que votre projet natif Xamarin. Par exemple, pour effectuer une mise à niveau de Xamarin.Android vers .NET pour Android, sélectionnez le modèle de projet application Android :
Le nouveau projet doit avoir le même nom de projet et de package que votre projet existant et doit être placé dans un nouveau dossier. L’ouverture du fichier projet confirmera que vous disposez d’un projet de style SDK .NET :
<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>
Important
Le moniker de framework cible (TFM) est ce qui indique que le projet utilise .NET, dans ce cas .NET 8. Les TFM valides pour les projets natifs Xamarin équivalents sont net8.0-android, net8.0-ios, net8.0-macos et net8.0-tvos. Pour en savoir plus sur les frameworks cibles dans les projets de style SDK, consultez Frameworks cibles dans les projets de style SDK.
Lancez l’application pour confirmer que votre environnement de développement peut générer l’application.
Fusionner des fichiers
Copiez votre code et vos fichiers de ressources à partir des dossiers de votre projet natif Xamarin vers des dossiers identiques dans votre nouvelle application. Vous devez remplacer tous les fichiers du même nom.
Si vous avez d’autres projets de bibliothèque, vous devez les ajouter à votre nouvelle solution et ajouter des références de projet à ceux-ci à partir de votre nouveau projet .NET.
Vous devez également copier certaines propriétés de votre projet natif Xamarin vers votre nouveau projet .NET pour les paramètres tels que les arguments de compilation conditionnelle et le code de signature. L’ouverture des projets côte à côte dans des instances Visual Studio distinctes vous permet de comparer les propriétés des projets. Vous pouvez également migrer les paramètres en modifiant directement le nouveau fichier projet. Pour en savoir plus, consultez Migration de projets Xamarin.Android et Migration de projet Apple Xamarin.
Mettre à jour les dépendances
En règle générale, les packages NuGet natifs Xamarin ne sont pas compatibles avec .NET 8, sauf s’ils ont été recompilés en utilisant des TFM .NET. Toutefois, les applications .NET pour Android peuvent utiliser des packages NuGet ciblant les infrastructures monoandroid
et monoandroidXX.X
.
Vous pouvez confirmer qu’un package est compatible avec .NET 8 en examinant l’onglet Infrastructures (Frameworks) sur NuGet pour le package que vous utilisez et en vérifiant qu’il répertorie l’une des infrastructures compatibles indiquées dans le tableau suivant :
Infrastructures compatibles | Infrastructures incompatibles |
---|---|
net8.0-android, monoandroid, monoandroidXX.X | |
net8.0-ios | monotouch, xamarinios, xamarinios10 |
net8.0-macos | monomac, xamarinmac, xamarinmac20 |
net8.0-tvos | xamarintvos |
xamarinwatchos |
Remarque
Les bibliothèques .NET Standard qui n’ont aucune dépendance sur les infrastructures incompatibles répertoriées ci-dessus sont toujours compatibles avec .NET 8.
Si un package sur NuGet indique la compatibilité avec l’une des infrastructures compatibles ci-dessus, indépendamment de l’inclusion éventuelle d’infrastructures incompatibles, le package est compatible. Vous pouvez ajouter des packages NuGet compatibles à votre projet natif .NET en utilisant le gestionnaire de package NuGet dans Visual Studio.
Si vous ne trouvez pas de version compatible .NET 8 d’un package NuGet, vous devez :
- Recompiler le package avec des TFM .NET, si vous possédez le code.
- Rechercher une préversion d’une version .NET 8 du package.
- Remplacer la dépendance par une alternative compatible .NET 8.
Pour en savoir plus sur la migration du code Xamarin.Essentials dans une application .NET pour Android ou .NET pour iOS, consultez Migrer du code Xamarin.Essentials dans les applications .NET pour iOS et .NET pour Android.
Compiler et résoudre les problèmes
Une fois que vos dépendances sont résolues et que vos fichiers de code et de ressources sont ajoutés à votre projet natif .NET, vous devez générer votre projet. Toutes les erreurs vous guideront vers les étapes suivantes.
Conseil
- Supprimez tous les dossiers bin et obj de tous les projets avant d’ouvrir et de générer des projets dans Visual Studio, en particulier lorsque vous changez de version de .NET.
- Supprimez le fichier généré Resource.designer.cs du projet Android.