Freigeben über


Upgrade von Xamarin.Android-, Xamarin.iOS- und Xamarin.Mac-Projekten auf .NET

Um Ihre nativen Xamarin-Projekte auf .NET zu aktualisieren, müssen Sie:

  • Aktualisieren der Projektdatei als Projekt im SDK-Stil
  • Aktualisieren oder ersetzen Sie inkompatible Abhängigkeiten mit .NET 8 Versionen.
  • Kompilieren und Testen Der App.

Für die meisten Projekte müssen Sie keine Namespaces ändern oder andere Umschreibungen durchführen.

Um das Upgrade zu vereinfachen, empfehlen wir, ein neues .NET-Projekt mit demselben Typ und Namen wie Ihr natives Xamarin-Projekt zu erstellen und dann in Ihren Code zu kopieren. Dies ist der unten beschriebene Ansatz.

Erstellen eines neuen Projekts

Erstellen Sie in Visual Studio ein neues .NET-Projekt mit demselben Typ und Namen wie Ihr natives Xamarin-Projekt. Wenn Sie z. B. ein Upgrade von Xamarin.Android auf .NET für Android durchführen möchten, wählen Sie die Projektvorlage Android-Anwendung aus:

Screenshot der Auswahl der Projektvorlage Android-Anwendung in Visual Studio.

Das neue Projekt sollte denselben Projekt- und Paketnamen wie Ihr bestehendes Projekt erhalten und in einem neuen Ordner abgelegt werden. Wenn Sie die Projektdatei öffnen, wird bestätigt, dass Sie ein Projekt im Stil des .NET SDK haben:

<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>

Wichtig

Der Name des Ziel-Frameworks (TFM) gibt an, dass das Projekt .NET verwendet, in diesem Fall .NET 8. Gültige TFMs für gleichwertige native Xamarin-Projekte sind net8.0-android, net8.0-ios, net8.0-macos und net8.0-tvos. Informationen zu Zielframeworks in Projekten im SDK-Stil finden Sie unter Zielframeworks in Projekten im SDK-Stil.

Starten Sie die App, um zu bestätigen, dass Ihre Entwicklungsumgebung die App erstellen kann.

Zusammenführen von Dateien

Kopieren Sie Ihren Code und die Ressourcendateien aus den Ordnern Ihres nativen Xamarin-Projekts in identische Ordner in Ihrer neuen Anwendung. Sie sollten alle Dateien mit demselben Namen überschreiben.

Wenn Sie andere Bibliotheksprojekte haben, sollten Sie diese zu Ihrer neuen Lösung hinzufügen und Projektverweise zu diesen von Ihrem neuen .NET-Projekt aus hinzufügen.

Sie müssen auch einige Projekteigenschaften aus Ihrem nativen Xamarin-Projekt in Ihr neues .NET-Projekt kopieren, wie etwa für Einstellungen wie bedingte Kompilierungsargumente und Codesignieren. Wenn Sie die Projekte nebeneinander in verschiedenen Visual Studio-Instanzen öffnen, können Sie die Projekteigenschaften vergleichen. Alternativ können Sie die Einstellungen auch migrieren, indem Sie die neue Projektdatei direkt bearbeiten. Weitere Informationen finden Sie unter Xamarin.Android-Projektmigration und Xamarin Apple-Projektmigration.

Aktualisieren von Abhängigkeiten

Im Allgemeinen sind die nativen Xamarin NuGet-Pakete nicht mit .NET 8 kompatibel, es sei denn, sie wurden mit .NET TFMs neu kompiliert. .NET für Android-Anwendungen kann jedoch NuGet-Pakete für die Frameworks monoandroid und monoandroidXX.X verwenden.

Sie können sich vergewissern, dass ein Paket mit .NET 8 kompatibel ist, indem Sie auf der Registerkarte Frameworks in NuGet nachsehen, ob eines der in der folgenden Tabelle aufgeführten kompatiblen Frameworks vorhanden ist:

Kompatible Frameworks Inkompatible Frameworks
net8.0-android, monoandroid, monoandroidXX.X
net8.0-ios monotouch, xamarinios, xamarinios10
net8.0-macos monomac, xamarinmac, xamarinmac20
net8.0-tvos xamarintvos
xamarinwatchos

Hinweis

.NET Standardbibliotheken, die keine Abhängigkeiten von den oben aufgeführten inkompatiblen Frameworks haben, sind weiterhin mit .NET 8 kompatibel.

Wenn ein Paket auf NuGet die Kompatibilität mit einem der oben aufgeführten kompatiblen Frameworks angibt, unabhängig davon, ob es auch inkompatible Frameworks enthält, ist das Paket kompatibel. Kompatible NuGet-Pakete können mithilfe des NuGet-Paketmanagers in Visual Studio zu Ihrem nativen .NET-Projekt hinzugefügt werden.

Wenn Sie eine .NET 8-kompatible Version eines NuGet-Pakets nicht finden können, sollten Sie:

  • Kompilieren Sie das Paket mit .NET TFMs, wenn Sie den Code besitzen.
  • Suchen Sie nach einer Vorschauversion einer .NET 8-Version des Pakets.
  • Ersetzen Sie die Abhängigkeit durch eine .NET 8-kompatible Alternative.

Informationen zum Migrieren von Xamarin.Essentials-Code in eine .NET für Android- oder .NET für iOS-Anwendung finden Sie unter Migrieren von Xamarin.Essentials-Code in .NET für Android und .NET für iOS-Apps.

Kompilieren und Problembehandlung

Sobald Ihre Abhängigkeiten aufgelöst sind und Ihr Code und Ihre Ressourcendateien zu Ihrem nativen .NET-Projekt hinzugefügt wurden, sollten Sie Ihr Projekt erstellen. Alle Fehler führen Sie zu den nächsten Schritten.

Tipp

  • Löschen Sie alle bin- und obj-Ordner aus allen Projekten, bevor Sie Projekte in Visual Studio öffnen und erstellen, insbesondere beim Wechsel der .NET-Version.
  • Löschen Sie die generierte Datei Resource.designer.cs aus dem Android-Projekt.