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:
- O Visual Studio no Windows pode instalar arquivos.msi para cada pacote de carga de trabalho.
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:
- Execute
dotnet workload uninstall maui
se você já usou osdotnet workload install
comandos. - 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
. - 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.*
ouC:\Program Files\dotnet\sdk\7.*
C:\Program Files\dotnet\host\fxr\6.*
ouC:\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 --install
o , 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