Fermer

mai 15, 2024

Dépannage de 6 problèmes connus dans .NET MAUI

Dépannage de 6 problèmes connus dans .NET MAUI


Examinons six des problèmes les plus courants qui surviennent dans .NET MAUI et comment les résoudre.

Dans le monde du développement logiciel, il est assez courant de rencontrer des défis que l’on ne sait pas résoudre instantanément. Que vous soyez un développeur expérimenté ou que vous fassiez simplement vos premiers pas en développement, tout cela fait partie du processus.

Mais ne vous inquiétez pas ! Dans cet article, nous explorerons six des problèmes les plus courants qui surviennent dans .NET MAUI et, plus important encore, comment les résoudre. 🛠️ Il s’agit d’apprendre et de grandir ensemble ! Commençons et explorons ces solutions ! 🚀📚

1. La version de la plate-forme n’est pas présente

Rencontrez-vous des difficultés à charger des charges de travail dans Visual Studio ? Ne t’inquiète pas! C’est réglé très rapidement !

Parfois, Visual Studio peut ne pas résoudre automatiquement les charges de travail lors de la compilation d’un projet, ce qui peut ralentir la progression de votre développement. Comment pouvez-vous identifier si c’est le problème que vous rencontrez ? En général, vous verrez un message semblable à celui-ci :

La version de la plateforme n’est pas présente pour un ou plusieurs frameworks cibles, même s’ils ont spécifié une plateforme : net8.0-android, net8.0-ios, net8.0-maccatalyst.

Quelle est la cause profonde de ce problème ? 🤔

Ce problème survient généralement lorsque les versions x86 et x64 du SDK sont installées, la version x86 étant utilisée. Pour un fonctionnement optimal de Visual Studio et .NET MAUI, le SDK .NET x64 est requis.

Comment peut-on résoudre ce problème ?

Vérifiez si la variable PATH à l’échelle du système dans votre système d’exploitation favorise le SDK x86. Pour résoudre ce problème, supprimez le SDK .NET x86 de la variable PATH ou ajustez les paramètres afin que le SDK .NET x64 soit prioritaire.

Pour un guide détaillé sur la distinction et le dépannage des problèmes entre les SDK x86 et x64 dans Windows, reportez-vous au «Installer .NET sous Windows : dépannage » section.

Lorsque vous travaillez avec le API Contacts sur les plateformes iOS ou macOS, vous pouvez parfois rencontrer le message d’erreur suivant :

The type or namespace name 'Default' does not exist in the namespace 'Contacts' (are you missing an assembly reference?)

Quelle est la cause de ce problème ? 🤔

Sur les plates-formes iOS et macOS, il existe un espace de noms racine nommé « Contacts ». Cela peut entraîner des conflits avec l’espace de noms « Contacts » trouvé dans Microsoft.Maui.ApplicationModel.Communication. Cet espace de noms particulier de Microsoft.Maui est automatiquement importé dans votre projet en raison de la <ImplicitUsings> paramètre dans le fichier de projet. Ce chevauchement peut entraîner des problèmes en raison de la duplication de l’espace de noms.

Quelle est la solution ?

Pour résoudre ce conflit, vous devez utiliser le nom complet pour le type Contacts. Vous pouvez également ajouter une directive using au début de votre fichier de code pour mapper explicitement l’espace de noms, comme suit :

using Communication = Microsoft.Maui.ApplicationModel.Communication;

// Code that uses the namespace: 
var contact = await Communication.Contacts.Default.PickContactAsync();

3. Xcode n’est pas actuellement installé ou est introuvable

Parfois, après avoir installé les outils de ligne de commande Xcode à l’aide de xcode-select --install, Visual Studio pour Mac peut afficher le message : « Xcode n’est pas actuellement installé ou est introuvable. » Cela se produit généralement lorsque vous essayez de créer des applications .NET MAUI ciblant iOS ou Mac Catalyst.

Comment cela peut-il être résolu ?

Pour résoudre ce problème, procédez comme suit :

  1. Assurez-vous que Xcode est installé depuis l’App Store.
  2. Ouvrez Xcode, accédez à Xcode ➡️ Préférences ➡️ Emplacements. Dans le Outils de ligne de commande section, vérifiez si le menu déroulant est défini.
  3. Si la liste déroulante est vide, cliquez dessus et sélectionnez l’emplacement approprié des outils de ligne de commande Xcode.
  4. Fermez Xcode et redémarrez Visual Studio pour Mac.

4. Erreurs de nom de fichier image en double

À partir de .NET 8, .NET MAUI a implémenté des contrôles pour éviter les noms de fichiers de ressources en double, y compris les icônes et les images. Cette règle s’applique aux fichiers dont l’action de construction est définie sur MauiImage et MauiIcon.

One or more duplicate file names were detected. All image output filenames must be unique.

Parfois, cela peut également se produire avec des fichiers portant des noms identiques mais des extensions différentes dans des dossiers différents. Par exemple, s’il y a un fichier PNG nommé « flowers.png » dans Resources/Images/PNG/ et un fichier SVG du même nom dans Resources/Images/SVG/, une erreur de compilation se produira. Cela est dû à la conversion des fichiers SVG en PNG pendant le processus de construction.

Une erreur se produira également si vous utilisez le Include attribut sur un MauiImage élément pour inclure toutes les images dans un dossier, tout en incluant également un fichier image spécifique, comme je le montre ci-dessous :

<MauiImage Include="Resources\Images\*" /> 
<MauiImage Include="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />

Quelle est la solution ?

➖ Pour éviter ce problème, assurez-vous que votre projet ne contient aucun nom en double pour les images et les icônes.

➖ Pour tout MauiIcon ou MauiImage référençant un fichier spécifique, utilisez le Update attribut plutôt que le Include attribut. Cet ajustement peut aider à éviter les conflits.

<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />

5. La version Xcode ne peut pas être localisée

Dans certains cas, lors de la création d’une application .NET MAUI pour iOS ou Mac Catalyst, vous pouvez sans le savoir utiliser une version de Xcode qui n’est plus installée. Cette incompatibilité incitera Visual Studio pour Mac à afficher une notification, indiquant la nécessité de mettre à jour ou de réinstaller la version correcte de Xcode. Le message que vous recevez indiquera généralement ce qui suit :

xcodebuild: error: SDK "/Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" cannot be located.

xcrun: error: sh -c '/Applications/Xcode_14.1.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find dsymutil 2> /dev/null' failed with exit code 16384: (null) (errno=Invalid argument)

xcrun: error: unable to find utility "dsymutil", not a developer tool or in PATH

Comment le résoudre?

C’est une solution simple ! Il vous suffit d’aller dans le fichier suivant :

~/Library/Preferences/Xamarin/Settings.plist

Et précisez la version de Xcode actuellement installée sur votre ordinateur. Cette étape garantit que votre environnement de développement est aligné sur la version correcte de Xcode, facilitant ainsi une compilation et une exécution plus fluides du projet.

6. Impossible de localiser les charges de travail .NET MAUI

Il existe deux méthodes principales pour installer les charges de travail .NET MAUI :

  • Sous Windows, Visual Studio peut utiliser des fichiers .msi pour installer chaque package de charge de travail.
  • Vous pouvez également utiliser les commandes d’installation de la charge de travail dotnet.

Toutefois, une mise en garde s’adresse aux utilisateurs Windows : si vous lancez une installation de charge de travail .NET après avoir déjà installé .NET MAUI via le programme d’installation de Visual Studio, vous pouvez rencontrer des conflits avec le placement des charges de travail .NET MAUI. Ces conflits apparaissent souvent sous la forme d’erreurs de construction, suggérant à tort que des installations de charge de travail .NET MAUI sont nécessaires. De plus, les charges de travail peuvent devenir irréparables ou non réinstallables dans ces situations.

Solutions

Mac: Le processus d’installation et de mise à niveau de Visual Studio sur Mac dépend des commandes d’installation de la charge de travail dotnet pour déployer les fichiers .NET MAUI .pkg. Comme les fichiers .pkg ne peuvent pas être désinstallés, la meilleure façon de supprimer ces charges de travail sur un Mac consiste à exécuter des commandes pour supprimer des répertoires spécifiques. Les commandes dont vous aurez besoin sont les suivantes :

rm -r ~/.dotnet/
sudo rm -r /usr/local/share/dotnet/

Les fenêtres: Pour désinstaller correctement les charges de travail .NET MAUI, vous devrez utiliser une combinaison de l’interface de ligne de commande (CLI), du panneau de configuration et des paramètres de Visual Studio. Ce processus implique d’abord de désinstaller les charges de travail via la CLI, puis de supprimer les SDK .NET via le Panneau de configuration et, enfin, de gérer les charges de travail .NET MAUI directement dans Visual Studio. Suivez ces étapes pour y parvenir :

  1. Exécutez la commande dotnet workload uninstall maui si vous avez déjà utilisé les commandes d’installation de dotnet workload.
  2. Dans le Panneau de configuration, supprimez toutes les installations indépendantes du SDK .NET. Recherchez les installateurs dont les noms ressemblent à « Microsoft .NET SDK 6.0.300 ».
  3. Pour chaque instance de Visual Studio, assurez-vous de désinstaller les charges de travail de développement de l’interface utilisateur de l’application multiplateforme .NET et de « développement de bureau .NET ».

Vérifions s’il existe des fichiers .msi supplémentaires, vous pouvez les désinstaller avec la commande suivante :

reg query HKLM\SOFTWARE\Microsoft\Windows\currentversion\uninstall\ -s -f manifest

Vous pouvez également vérifier les SDK .NET 6+ toujours installés sur votre ordinateur et utiliser la commande reg query, telle que :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\currentversion\uninstall\{EEC1BB5F-3391-43C2-810E-42D78ADF3140}

InstallSource REG_SZ C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.MacCatalyst.Manifest-6.0.300,version=125.179.40883,chip=x64,productarch=neutral\

DisplayName REG_SZ Microsoft.NET.Sdk.MacCatalyst.Manifest-6.0.300

Si vous recevez un résultat similaire, copiez le GUID de chaque package et utilisez la commande msiexec pour désinstaller le package.

msiexec /x {EEC1BB5F-3391-43C2-810E-42D78ADF3140} /q IGNOREDEPENDENCIES=ALL

⚠️ Vous devez exécuter de manière persistante la commande reg query jusqu’à ce que tous les composants soient complètement désinstallés.

Ensuite, pour un nettoyage en profondeur, supprimez les répertoires suivants dans le C:\Programmes\dotnet chemin:

  • manifestes SDK
  • métadonnées
  • paquets
  • packs de bibliothèques
  • packs de modèles
  • sdk\6.* ou sdk\7.*
  • hôte\fxr\6.* ou hôte\fxr\7.*

Vous êtes maintenant prêt à réinstaller .NET MAUI ! 💕

Conclusion

C’est tout! J’espère qu’à l’avenir, si vous rencontrez ces problèmes, vous saurez comment les résoudre. À la prochaine! 💚💕

Les références

Cet article était basé sur la documentation officielle :




Source link