Udostępnij za pośrednictwem


Uaktualnianie projektów Xamarin.Android, Xamarin.iOS i Xamarin.Mac do platformy .NET

Aby uaktualnić projekty natywne platformy Xamarin do platformy .NET, musisz:

  • Zaktualizuj plik projektu tak, aby był w stylu zestawu SDK.
  • Zaktualizuj lub zastąp niezgodne zależności wersjami platformy .NET 8.
  • Skompiluj i przetestuj aplikację.

W przypadku większości projektów nie trzeba zmieniać przestrzeni nazw ani podejmować innych ponownych pisania.

Aby uprościć proces uaktualniania, zalecamy utworzenie nowego projektu .NET o tym samym typie i nazwie co projekt natywny platformy Xamarin, a następnie skopiowanie go w kodzie. Jest to podejście opisane poniżej.

Tworzenie nowego projektu

W programie Visual Studio utwórz nowy projekt platformy .NET o tym samym typie i nazwie co projekt natywny platformy Xamarin. Aby na przykład uaktualnić platformę Xamarin.Android do platformy .NET dla systemu Android, wybierz szablon projektu Aplikacja systemu Android:

Zrzut ekranu przedstawiający wybieranie szablonu projektu aplikacji dla systemu Android w programie Visual Studio.

Nowy projekt powinien mieć taką samą nazwę projektu i pakietu jak istniejący projekt i powinien zostać umieszczony w nowym folderze. Otwarcie pliku projektu potwierdzi, że masz projekt w stylu zestawu SDK platformy .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>

Ważne

Docelowy pseudonim platformy (TFM) określa projekt jako korzystający z platformy .NET, w tym przypadku .NET 8. Prawidłowe programy TFM dla równoważnych projektów natywnych platformy Xamarin to net8.0-android, net8.0-ios, net8.0-macos i net8.0-tvos. Aby uzyskać informacje o platformach docelowych w projektach w stylu zestawu SDK, zobacz Platformy docelowe w projektach w stylu zestawu SDK.

Uruchom aplikację, aby potwierdzić, że środowisko deweloperskie może skompilować aplikację.

Scalanie plików

Skopiuj kod i pliki zasobów z folderów projektu natywnego platformy Xamarin do identycznych folderów w nowej aplikacji. Należy zastąpić wszystkie pliki o tej samej nazwie.

Jeśli masz inne projekty biblioteki, należy dodać je do nowego rozwiązania i dodać odwołania do projektu z nowego projektu .NET.

Musisz również skopiować niektóre właściwości projektu z projektu natywnego platformy Xamarin do nowego projektu platformy .NET, aby uzyskać ustawienia, takie jak argumenty kompilacji warunkowej i podpisywanie kodu. Otwarcie projektów obok siebie w oddzielnych wystąpieniach programu Visual Studio umożliwi porównanie właściwości projektu. Alternatywnie możesz migrować ustawienia, edytując nowy plik projektu bezpośrednio. Aby uzyskać więcej informacji, zobacz Migracja projektu platformy Xamarin.Android i migracja projektu platformy Xamarin firmy Apple.

Aktualizowanie zależności

Ogólnie rzecz biorąc, natywne pakiety NuGet platformy Xamarin nie są zgodne z platformą .NET 8, chyba że zostały ponownie skompilowane przy użyciu programu .NET TFMs. Jednak aplikacje platformy .NET dla systemu Android mogą używać pakietów NuGet przeznaczonych dla platform monoandroid i monoandroidXX.X .

Możesz potwierdzić, że pakiet jest zgodny z platformą .NET 8, przeglądając kartę Struktury w narzędziu NuGet dla używanego pakietu i sprawdzając, czy zawiera jedną z zgodnych struktur pokazanych w poniższej tabeli:

Zgodne struktury Niezgodne struktury
net8.0-android, monoandroid, monoandroidXX.X
net8.0-ios monotouch, xamarinios, xamarinios10
net8.0-macos monomac, xamarinmac, xamarinmac20
net8.0-tvos xamarintvos
xamarinwatchos

Uwaga

Biblioteki .NET Standard, które nie mają zależności od niezgodnych platform wymienionych powyżej, są nadal zgodne z platformą .NET 8.

Jeśli pakiet w pakiecie NuGet wskazuje zgodność z dowolną z powyższych platform zgodnych, niezależnie od tego, czy zawiera również niezgodne struktury, pakiet jest zgodny. Zgodne pakiety NuGet można dodać do projektu natywnego platformy .NET przy użyciu menedżera pakietów NuGet w programie Visual Studio.

Jeśli nie możesz znaleźć zgodnej wersji pakietu NuGet platformy .NET 8, należy wykonać następujące czynności:

  • Ponownie skompiluj pakiet za pomocą programu .NET TFMs, jeśli jesteś właścicielem kodu.
  • Poszukaj wersji zapoznawczej pakietu .NET 8.
  • Zastąp zależność alternatywą zgodną z platformą .NET 8.

Aby uzyskać informacje na temat migrowania kodu platformy Xamarin.Essentials na platformie .NET dla systemu Android lub .NET dla systemu iOS, zobacz Migrowanie kodu platformy Xamarin.Essentials na platformie .NET dla systemów Android i .NET dla aplikacji systemu iOS.

Kompilowanie i rozwiązywanie problemów

Po rozwiązaniu zależności i do projektu natywnego platformy .NET zostaną dodane pliki kodu i zasobów, należy skompilować projekt. Wszelkie błędy spowodują przejście do następnych kroków.

Napiwek

  • Przed otwarciem i utworzeniem projektów w programie Visual Studio usuń wszystkie foldery bin i obj , szczególnie podczas zmieniania wersji platformy .NET.
  • Usuń Resource.designer.cs wygenerowany plik z projektu systemu Android.