Solução de problemas conhecidos

Este artigo descreve alguns dos problemas conhecidos com a interface do usuário de aplicativo multiplataforma do .NET (.NET MAUI) e como você pode resolvê-los ou contorná-los. O repositório .NET MAUI também detalha alguns problemas conhecidos.

Não é possível localizar as cargas de trabalho do .NET MAUI

Há duas opções para instalar as cargas de trabalho do .NET MAUI:

  1. O Visual Studio no Windows pode instalar arquivos.msi para cada pacote de carga de trabalho.
  2. dotnet workload install Comandos.

No Windows, se você executar um dotnet workload install após a instalação do .NET MAUI por meio do instalador do Visual Studio, o Visual Studio poderá inserir um estado em que não é possível localizar as cargas de trabalho do .NET MAUI. Você receberá erros de build informando para instalar as cargas de trabalho do .NET MAUI e é possível inserir um estado em que as cargas de trabalho não podem ser reparadas ou reinstaladas. Para obter mais informações, consulte o problema do GitHub dotnet/sdk#22388.

Windows

A solução para esse problema no Windows é desinstalar as cargas de trabalho do .NET MAUI por meio da CLI, desinstalar os SDKs do .NET em Painel de Controle e desinstalar as cargas de trabalho do .NET MAUI no Visual Studio. Essas desinstalações podem ser realizadas com o seguinte processo:

  1. Execute dotnet workload uninstall maui se você já usou os dotnet workload install comandos.
  2. Desinstale todos os instaladores autônomos do SDK do .NET do Painel de Controle. Esses instaladores têm nomes semelhantes a Microsoft .NET SDK 6.0.300.
  3. Em todas as instâncias do Visual Studio, desinstale as cargas de trabalho do Visual Studio de desenvolvimento de aplicativo multiplataforma do .NET e do Visual Studio de desenvolvimento de área de trabalho do .NET.

Em seguida, marcar se houver arquivos adicionais .msi que precisam ser desinstalados executando o seguinte comando:

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

Este reg query comando lista os SDKs do .NET 6+ que ainda estão instalados no computador, como:

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

Se você receber uma saída semelhante, deverá copiar o GUID para cada pacote e desinstalar o pacote com o msiexec comando :

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

Em seguida, você deve continuar executando o reg query comando até que ele não retorne nenhum resultado. Depois que não houver mais resultados e todos os SDKs do .NET 6+ forem desinstalados, você também deverá considerar a exclusão das seguintes pastas:

  • C:\Program Files\dotnet\sdk-manifests
  • C:\Program Files\dotnet\metadata
  • C:\Program Files\dotnet\packs
  • C:\Program Files\dotnet\library-packs
  • C:\Program Files\dotnet\template-packs
  • C:\Program Files\dotnet\sdk\6.* ou C:\Program Files\dotnet\sdk\7.*
  • C:\Program Files\dotnet\host\fxr\6.* ou C:\Program Files\dotnet\host\fxr\7.*

Depois de seguir esse processo, você poderá reinstalar o .NET MAUI por meio do Visual Studio ou instalando a versão escolhida do SDK do .NET e executando o dotnet workload install maui comando.

Mac

O instalador e o atualizador do Visual Studio para Mac usam comandos dotnet workload install para instalar os arquivos .pkg do .NET MAUI.

Como os arquivos .pkg não podem ser desinstalados, a abordagem mais simples para desinstalar as cargas de trabalho em um Mac é executar os seguintes comandos para excluir as pastas especificadas:

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

Depois de executar esses comandos, você deverá ser capaz de reinstalar o .NET MAUI por meio de Visual Studio para Mac ou instalando a versão escolhida do SDK do .NET e executando o dotnet workload install maui comando.

A versão da plataforma não está presente

O Visual Studio pode não estar resolvendo as cargas de trabalho necessárias se você tentar compilar um projeto e receber um erro semelhante ao seguinte texto:

A versão da plataforma não está presente para uma ou mais estruturas de destino, mesmo que tenham especificado uma plataforma: net7.0-android, net7.0-ios, net7.0-maccatalyst

Esse problema normalmente resulta de ter um SDK x86 e x64 instalado e a versão x86 está sendo usada. O Visual Studio e o .NET MAUI exigem o SDK do .NET x64. Se o sistema operacional tiver uma variável de todo PATH o sistema que está resolvendo o SDK x86 primeiro, você precisará corrigir isso removendo o SDK do .NET x86 da PATH variável ou promovendo o SDK do .NET x64 para que ele seja resolvido primeiro. Para obter mais informações sobre como solucionar problemas de resolução do SDK x86 vs x64, consulte Instalar o .NET no Windows – Solução de problemas.

O tipo ou namespace 'Default' não existe

Ao usar a Contacts API, você poderá ver o seguinte erro relacionado ao iOS e macOS:

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

As plataformas iOS e macOS contêm um namespace raiz chamado Contacts. Esse conflito causa um conflito para essas plataformas com o Microsoft.Maui.ApplicationModel.Communication namespace , que contém um Contacts tipo. O Microsoft.Maui.ApplicationModel.Communication namespace é importado automaticamente pela configuração <ImplicitUsings> no arquivo de projeto.

Para escrever código que também é compilado para iOS e macOS, qualifique totalmente o Contacts tipo. Como alternativa, forneça uma using diretiva na parte superior do arquivo de código para mapear o Communication namespace:

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

O Xcode não está instalado no momento ou não foi encontrado

Depois de instalar as ferramentas de linha de comando do Xcode usando xcode-select --installo , Visual Studio para Mac pode mostrar uma mensagem "O Xcode não está instalado ou não foi encontrado" ao tentar criar aplicativos MAUI do .NET direcionados ao iOS ou ao Mac Catalyst. Nesse cenário, marcar que você também tenha o Xcode instalado do App Store. Em seguida, inicie o Xcode e vá para Xcode > Preferences Locations >> Command Line Tools e marcar se a lista suspensa estiver vazia. Se estiver vazio, selecione a lista suspensa e selecione o local das ferramentas de linha de comando do Xcode. Em seguida, feche o Xcode e reinicie Visual Studio para Mac.

Não foi possível encontrar um pacote de aplicativo Xcode válido

Se você receber o erro "Não foi possível encontrar um pacote de aplicativo Xcode válido em '/Library/Developer/CommandLineTools'" ao tentar criar aplicativos MAUI do .NET direcionados ao iOS ou ao Mac Catalyst, tente que a solução descrita no Xcode não esteja instalada no momento ou não possa ser encontrada. Se você ainda não conseguir acessar a lista suspensa Ferramentas de Linha de Comando dos Locais de Preferências >> do Xcode>, execute o seguinte comando:

sudo xcode-select --reset