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:

Captura de tela da seleção do modelo de projeto do aplicativo Android no Visual Studio.

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.