Aggiornare progetti Xamarin.Android, Xamarin.iOS e Xamarin.Mac a .NET

Per aggiornare i progetti nativi Xamarin a .NET, è necessario:

  • Aggiornare il file di progetto in modo che sia in stile SDK.
  • Aggiornare o sostituire dipendenze incompatibili con le versioni di .NET 8.
  • Compilare e testare l'app.

Per la maggior parte dei progetti non è necessario modificare gli spazi dei nomi o eseguire altre riscritture.

Per semplificare il processo di aggiornamento, è consigliabile creare un nuovo progetto .NET con lo stesso tipo e nome del progetto nativo Xamarin e quindi copiarlo nel codice. Questo è l'approccio descritto di seguito.

Crea un nuovo progetto

In Visual Studio creare un nuovo progetto .NET con lo stesso tipo e nome del progetto nativo Xamarin. Ad esempio, per eseguire l'aggiornamento da Xamarin.Android ad Android .NET, selezionare il modello di progetto Applicazione Android:

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

Al nuovo progetto deve essere assegnato lo stesso nome di progetto e pacchetto del progetto esistente e deve essere inserito in una nuova cartella. L'apertura del file di progetto consentirà di verificare di avere un progetto di tipo .NET SDK:

<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

Il moniker del framework di destinazione (TFM) indica il progetto come usando .NET, in questo caso .NET 8. I TFM validi per i progetti nativi Xamarin equivalenti sono net8.0-android, net8.0-ios, net8.0-macos e net8.0-tvos. Per informazioni sui framework di destinazione nei progetti in stile SDK, vedere Framework di destinazione nei progetti in stile SDK.

Avviare l'app per verificare che l'ambiente di sviluppo possa compilare l'app.

Unire file

Copiare il codice e i file di risorse dalle cartelle del progetto nativo Xamarin in cartelle identiche all'interno della nuova app. È consigliabile sovrascrivere tutti i file con lo stesso nome.

Se si dispone di altri progetti di libreria, è necessario aggiungerli alla nuova soluzione e aggiungervi riferimenti di progetto dal nuovo progetto .NET.

È anche necessario copiare alcune proprietà del progetto dal progetto nativo Xamarin al nuovo progetto .NET, per impostazioni come argomenti di compilazione condizionale e firma del codice. L'apertura affiancata dei progetti in istanze separate di Visual Studio consentirà di confrontare le proprietà del progetto. In alternativa, è possibile eseguire la migrazione delle impostazioni modificando direttamente il nuovo file di progetto. Per altre informazioni, vedere Migrazione del progetto Xamarin.Android e migrazione del progetto Xamarin Apple.

Aggiornare le dipendenze

In genere, i pacchetti NuGet nativi di Xamarin non sono compatibili con .NET 8 a meno che non siano stati ricompilati usando i TFM .NET. Tuttavia, le app Android .NET possono usare pacchetti NuGet destinati ai monoandroid framework e monoandroidXX.X .

È possibile verificare che un pacchetto sia compatibile con .NET 8 esaminando la scheda Framework inNuGet per il pacchetto in uso e verificando che elenca uno dei framework compatibili illustrati nella tabella seguente:

Framework compatibili Framework incompatibili
net8.0-android, monoandroid, monoandroidXX.X
net8.0-ios monotouch, xamarinios, xamarinios10
net8.0-macos monomac, xamarinmac, xamarinmac20
net8.0-tvos xamarintvos
xamarinwatchos

Nota

Le librerie .NET Standard che non hanno dipendenze dai framework incompatibili elencati in precedenza sono ancora compatibili con .NET 8.

Se un pacchetto in NuGet indica la compatibilità con uno dei framework compatibili precedenti, indipendentemente dall'inclusione anche di framework incompatibili, il pacchetto è compatibile. I pacchetti NuGet compatibili possono essere aggiunti al progetto nativo .NET usando gestione pacchetti NuGet in Visual Studio.

Se non è possibile trovare una versione compatibile con .NET 8 di un pacchetto NuGet, è necessario:

  • Ricompilare il pacchetto con i TFM .NET, se si è proprietari del codice.
  • Cercare una versione di anteprima di una versione .NET 8 del pacchetto.
  • Sostituire la dipendenza con un'alternativa compatibile con .NET 8.

Per informazioni sulla migrazione del codice Xamarin.Essentials in un'app .NET Android o .NET iOS, vedere Eseguire la migrazione del codice Xamarin.Essentials nelle app .NET Android e .NET per iOS.

Compilare e risolvere i problemi

Dopo aver risolto le dipendenze e aver aggiunto il codice e i file di risorse al progetto nativo .NET, è necessario compilare il progetto. Eventuali errori ti guideranno verso i passaggi successivi.

Suggerimento

  • Eliminare tutte le cartelle bin e obj da tutti i progetti prima di aprire e compilare progetti in Visual Studio, in particolare quando si modificano le versioni di .NET.
  • Eliminare il file generato da Resource.designer.cs dal progetto Android.