Atualize projetos Xamarin.Android, Xamarin.iOS e Xamarin.Mac para .NET

Para atualizar seus projetos nativos do Xamarin para .NET, você deve:

  • Atualize seu arquivo de projeto para ser no estilo SDK.
  • Atualize ou substitua dependências incompatíveis com versões do .NET 8.
  • Compile e teste seu aplicativo.

Para a maioria dos projetos, você não precisará alterar namespaces ou realizar outras regravações.

Para simplificar o processo de atualização, recomendamos criar um novo projeto .NET do mesmo tipo e nome do seu projeto nativo do Xamarin e, em seguida, copiar em seu código. Esta é a abordagem descrita abaixo.

Crie um novo projeto

No Visual Studio, crie um novo projeto .NET do mesmo tipo e nome que seu projeto nativo do Xamarin. Por exemplo, para atualizar do Xamarin.Android para o .NET Android, selecione o modelo de projeto Aplicativo Android:

Screenshot of selecting the Android app project template in Visual Studio.

O novo projeto deve receber o mesmo nome de projeto e pacote que o projeto existente e deve ser colocado em uma nova pasta. Abrir o arquivo de projeto confirmará que você tem um projeto no estilo 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 denota o projeto como usando .NET, neste caso .NET 8. Os TFMs válidos para projetos nativos equivalentes do Xamarin 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 de estilo SDK, consulte Estruturas de destino em projetos de estilo SDK.

Inicie o aplicativo para confirmar que seu ambiente de desenvolvimento pode compilá-lo.

Mesclar arquivos

Copie seus arquivos de código e recursos das pastas do seu projeto nativo do Xamarin para pastas idênticas dentro do seu novo aplicativo. Você deve substituir todos os arquivos com o mesmo nome.

Se você tiver outros projetos de biblioteca, você deve adicioná-los à sua nova solução e adicionar referências de projeto a eles do seu novo projeto .NET.

Você também precisará copiar algumas propriedades do projeto do Xamarin nativo para o novo projeto .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, consulte Migração de projeto Xamarin.Android e Migração de projeto 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, os aplicativos .NET para Android podem usar pacotes NuGet direcionados às monoandroid estruturas e monoandroidXX.X .

Você pode confirmar que um pacote é compatível com o .NET 8 observando a guia Estruturas no NuGet para o pacote que você está usando e verificando 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 monotoque, 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 nas estruturas incompatíveis listadas acima ainda são compatíveis com o .NET 8.

Se um pacote no 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 seu 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 .NET 8 de um pacote NuGet, você deverá:

  • Recompile o pacote com .NET TFMs, se você possuir o código.
  • Procure uma versão de visualização de uma versão .NET 8 do pacote.
  • Substitua a dependência por uma alternativa compatível com .NET 8.

Para obter informações sobre como migrar o código Xamarin.Essentials em um aplicativo .NET Android ou .NET iOS, consulte Migrar código Xamarin.Essentials em aplicativos .NET Android e .NET 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á compilar seu projeto. Quaisquer erros irão guiá-lo para os próximos passos.

Dica

  • Exclua todas as pastas bin e obj de todos os projetos antes de abrir e criar projetos no Visual Studio, especialmente ao alterar versões do .NET.
  • Exclua o arquivo gerado .cs Resource.designer do projeto Android.