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 a .NET per Android selezionare il modello di progetto Applicazione Android:
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, .NET per le app Android può usare pacchetti NuGet destinati ai monoandroid
framework e monoandroidXX.X
.
È possibile verificare che un pacchetto sia compatibile con .NET 8 esaminando la scheda Framework in NuGet 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 per Android o .NET per iOS, vedere Eseguire la migrazione del codice Xamarin.Essentials in .NET per Android e .NET per le app 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 Resource.designer.cs file generato dal progetto Android.