Atualizar projetos do Xamarin.Android, Xamarin.iOS e Xamarin.Mac para .NET
Para atualizar os seus projetos nativos do Xamarin para o .NET, você deve:
- Atualizar seu arquivo de projeto para o estilo SDK.
- Atualize ou substitua dependências incompatíveis por versões do .NET 8.
- Compilar e testar seu aplicativo.
Para a maioria dos projetos, você não precisará alterar namespaces ou realizar outras reescritas.
Para simplificar o processo de atualização, recomendamos a criação de um novo projeto do .NET do mesmo tipo e nome que o projeto nativo do Xamarin e, em seguida, copiá-lo em seu código. Essa é a abordagem descrita abaixo.
Crie um novo projeto
No Visual Studio, crie um novo projeto do .NET com o mesmo tipo e nome do projeto nativo do Xamarin. Por exemplo, para atualizar do Xamarin.Android para o .NET para Android, selecione o modelo de projeto do Aplicativo Android:
O novo projeto deve receber o mesmo nome de projeto e pacote que o seu projeto existente e deve ser colocado em uma nova pasta. A abertura do arquivo de projeto confirmará que você tem um projeto no estilo do SDK do .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>
Importante
O Moniker da Estrutura de Destino (TFM) é o que indica o projeto como usando o .NET, neste caso. NET 8. Os TFMs válidos para projetos nativos do Xamarin equivalentes são net8.0-android, net8.0-ios, net8.0-macos e net8.0-tvos. Para obter informações sobre estruturas de destino em projetos no estilo SDK, confira Estruturas de destino em projetos no estilo SDK.
Inicie o aplicativo para confirmar se o seu ambiente de desenvolvimento pode criar o aplicativo.
Mesclar arquivos
Copie o código e os arquivos de recurso das pastas do projeto nativo do Xamarin para pastas idênticas em seu novo aplicativo. Você deve substituir todos os arquivos com o mesmo nome.
Se você tiver outros projetos de biblioteca, deverá adicioná-los à sua nova solução e adicionar referências de projeto a eles do seu novo projeto do .NET.
Você também precisará copiar algumas propriedades de projeto do projeto nativo do Xamarin para o seu novo projeto do .NET, para configurações como argumentos de compilação condicional e assinatura de código. Abrir os projetos lado a lado em instâncias separadas do Visual Studio permitirá que você compare as propriedades do projeto. Como alternativa, você pode migrar as configurações editando o novo arquivo de projeto diretamente. Para obter mais informações, confira Migração de projeto do Xamarin.Android e Migração de projeto do Xamarin Apple.
Atualizar dependências
Geralmente, os pacotes NuGet nativos do Xamarin não são compatíveis com o .NET 8, a menos que tenham sido recompilados usando TFMs do .NET. No entanto, aplicativos do .NET para Android podem usar pacotes NuGet direcionados às estruturas monoandroid
e monoandroidXX.X
.
Para confirmar se um pacote é compatível com o .NET 8, consulte a guia Estruturas no NuGet para o pacote que você está usando e verifique se ele lista uma das estruturas compatíveis mostradas na tabela a seguir:
Estruturas compatíveis | Estruturas incompatíveis |
---|---|
net8.0-android, monoandroid, monoandroidXX.X | |
net8.0-ios | monotouch, xamarinios, xamarinios10 |
net8.0-macos | monomac, xamarinmac, xamarinmac20 |
net8.0-tvos | xamarintvos |
xamarinwatchos |
Observação
As bibliotecas do .NET Standard que não têm dependências das estruturas incompatíveis listadas acima ainda são compatíveis com o .NET 8.
Se um pacote em NuGet indicar compatibilidade com qualquer uma das estruturas compatíveis acima, independentemente de também incluir estruturas incompatíveis, o pacote será compatível. Pacotes NuGet compatíveis podem ser adicionados ao projeto nativo do .NET usando o gerenciador de pacotes NuGet no Visual Studio.
Se você não conseguir encontrar uma versão compatível com o .NET 8 de um pacote NuGet, deverá:
- Recompilar o pacote com TFMs .NET, se você possuir o código.
- Procurar uma versão prévia de uma versão .NET 8 do pacote.
- Substituir a dependência por uma alternativa compatível com o .NET 8.
Para obter informações sobre como migrar o código Xamarin.Essentials em um aplicativo do .NET para Android ou .NET para iOS, confira Migrar código do Xamarin.Essentials em aplicativos do .NET para Android e .NET para iOS.
Compilar e solucionar problemas
Depois que suas dependências forem resolvidas e seus arquivos de código e recursos forem adicionados ao seu projeto nativo do .NET, você deverá criar o seu projeto. Qualquer erro guiará você para as próximas etapas.
Dica
- Exclua todas as pastas bin e obj de todos os projetos antes de abrir e compilar projetos no Visual Studio, especialmente ao alterar as versões do .NET.
- Exclua o arquivo gerado Resource.designer.cs pelo projeto Android.