Upgrade projektů Xamarin.Android, Xamarin.iOS a Xamarin.Mac na .NET

Pokud chcete upgradovat nativní projekty Xamarinu na .NET, musíte:

  • Aktualizujte soubor projektu tak, aby byl ve stylu sady SDK.
  • Aktualizujte nebo nahraďte nekompatibilní závislosti verzemi .NET 8.
  • Zkompilujte a otestujte aplikaci.

U většiny projektů nebudete muset měnit obory názvů ani provádět jiné přepisy.

Pro zjednodušení procesu upgradu doporučujeme vytvořit nový projekt .NET se stejným typem a názvem jako nativní projekt Xamarinu a pak zkopírovat do kódu. Toto je přístup popsaný níže.

Vytvoření nového projektu

V sadě Visual Studio vytvořte nový projekt .NET se stejným typem a názvem jako nativní projekt Xamarinu. Pokud chcete například upgradovat z Xamarin.Android na .NET pro Android, vyberte šablonu projektu aplikace pro Android:

Snímek obrazovky s výběrem šablony projektu aplikace pro Android v sadě Visual Studio

Nový projekt by měl mít stejný název projektu a balíčku jako váš stávající projekt a měl by být umístěn do nové složky. Otevřením souboru projektu potvrdíte, že máte projekt ve stylu sady .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>

Důležité

Moniker cílové architektury (TFM) označuje projekt jako použití .NET v tomto případě .NET 8. Platné TFM pro ekvivalentní nativní projekty Xamarinu jsou net8.0-android, net8.0-ios, net8.0-macos a net8.0-tvos. Informace o cílových architekturách v projektech ve stylu sady SDK naleznete v tématu Cílové architektury v projektech ve stylu sady SDK.

Spusťte aplikaci a ověřte, že vaše vývojové prostředí může aplikaci sestavit.

Sloučení souborů

Zkopírujte kód a soubory prostředků ze složek nativního projektu Xamarinu do stejných složek v nové aplikaci. Měli byste přepsat všechny soubory se stejným názvem.

Pokud máte jiné projekty knihovny, měli byste je přidat do nového řešení a přidat do nich odkazy na projekt z nového projektu .NET.

Budete také muset zkopírovat některé vlastnosti projektu z nativního projektu Xamarinu do nového projektu .NET pro nastavení, jako jsou argumenty podmíněné kompilace a podepisování kódu. Otevření projektů vedle sebe v samostatných instancích sady Visual Studio vám umožní porovnat vlastnosti projektu. Případně můžete nastavení migrovat přímo úpravou nového souboru projektu. Další informace najdete v tématu Migrace projektů Xamarin.Android a migrace projektu Xamarin Apple.

Aktualizace závislostí

Obecně platí, že nativní balíčky NuGet pro Xamarin nejsou kompatibilní s .NET 8, pokud nebyly rekompilovány pomocí .NET TFM. Aplikace .NET pro Android ale můžou používat balíčky NuGet, které cílí na monoandroid architektury a monoandroidXX.X architektury.

Pokud chcete ověřit, jestli je balíček kompatibilní s .NET 8, podívejte se na kartu Frameworks na NuGetu pro balíček, který používáte, a zkontrolujte, jestli obsahuje jednu z kompatibilních architektur zobrazených v následující tabulce:

Kompatibilní architektury Nekompatibilní architektury
net8.0-android, monoandroid, monoandroidXX.X
net8.0-ios monotouch, xamarinios, xamarinios10
net8.0-macos monomac, xamarinmac, xamarinmac20
net8.0-tvos xamarintvos
xamarinwatchos

Poznámka:

Knihovny .NET Standard, které nemají žádné závislosti na nekompatibilních architekturách uvedených výše, jsou stále kompatibilní s .NET 8.

Pokud balíček na NuGetu indikuje kompatibilitu s některou z výše uvedených kompatibilních architektur, bez ohledu na to, že zahrnuje také nekompatibilní architektury, je balíček kompatibilní. Kompatibilní balíčky NuGet lze přidat do nativního projektu .NET pomocí správce balíčků NuGet v sadě Visual Studio.

Pokud nemůžete najít kompatibilní verzi balíčku NuGet pro .NET 8, měli byste:

  • Pokud vlastníte kód, překompilujte balíček pomocí .NET TFM.
  • Vyhledejte verzi Preview balíčku .NET 8.
  • Nahraďte závislost alternativou kompatibilní s .NET 8.

Informace o migraci kódu Xamarin.Essentials v aplikaci .NET pro Android nebo .NET pro iOS najdete v tématu Migrace kódu Xamarin.Essentials v .NET pro Android a .NET pro aplikace pro iOS.

Kompilace a řešení potíží

Po vyřešení závislostí a přidání kódu a souborů prostředků do nativního projektu .NET byste měli projekt sestavit. Všechny chyby vás provedou k dalším krokům.

Tip

  • Před otevřením a sestavováním projektů v sadě Visual Studio odstraňte všechny složky bin a obj , zejména při změně verzí .NET.
  • Odstraňte Resource.designer.cs vygenerovaný soubor z projektu Android.