Поделиться через


Обновление проектов Xamarin.Android, Xamarin.iOS и Xamarin.Mac до .NET

Чтобы обновить собственные проекты Xamarin до .NET, необходимо:

  • Обновите файл проекта, чтобы он был стилем пакета SDK.
  • Обновите или замените несовместимые зависимости версиями .NET 8.
  • Скомпилируйте и протестируйте приложение.

Для большинства проектов вам не нужно изменять пространства имен или выполнять другие перезаписи.

Чтобы упростить процесс обновления, рекомендуется создать проект .NET с тем же типом и именем, что и собственный проект Xamarin, а затем скопировать код. Это подход, описанный ниже.

Создание нового проекта

В Visual Studio создайте новый проект .NET с тем же типом и именем, что и собственный проект Xamarin. Например, чтобы обновить Xamarin.Android на .NET для Android, выберите шаблон проекта приложения Android:

Снимок экрана: выбор шаблона проекта приложения Android в Visual Studio.

Новый проект должен иметь то же имя проекта и пакета, что и существующий проект, и его следует поместить в новую папку. Открытие файла проекта подтвердит наличие проекта в стиле пакета SDK для .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>

Внимание

Моникер целевой платформы (TFM) — это то, что обозначает проект как использование .NET, в данном случае .NET 8. Допустимые TFMs для эквивалентных собственных проектов Xamarin: net8.0-android, net8.0-ios, net8.0-macos и net8.0-tvos. Сведения о целевых платформах в проектах в стиле SDK см. в разделе "Целевые платформы" в проектах в стиле SDK.

Запустите приложение, чтобы убедиться, что среда разработки может создать приложение.

Merge files (Объединить файлы)

Скопируйте файлы кода и ресурсов из папок собственного проекта Xamarin в идентичные папки в новом приложении. Необходимо перезаписать все файлы с одинаковым именем.

Если у вас есть другие проекты библиотеки, их следует добавить в новое решение и добавить ссылки на проекты из нового проекта .NET.

Кроме того, вам потребуется скопировать некоторые свойства проекта из собственного проекта Xamarin в новый проект .NET для таких параметров, как аргументы условной компиляции и подписывание кода. Открытие проектов параллельно в отдельных экземплярах Visual Studio позволит сравнить свойства проекта. Кроме того, можно перенести параметры, изменив новый файл проекта напрямую. Дополнительные сведения см. в разделе миграции проектов Xamarin.Android и миграции проектов Xamarin Apple.

Обновление зависимостей

Как правило, собственные пакеты NuGet Xamarin несовместимы с .NET 8, если они не были перекомпилированы с помощью .NET TFMs. Однако приложения .NET для Android могут использовать пакеты NuGet, предназначенные для monoandroid платформ и monoandroidXX.X платформ.

Вы можете убедиться, что пакет совместим с .NET 8, просматривая вкладку Платформы в NuGet для используемого пакета, и проверка, что он содержит одну из совместимых платформ, показанных в следующей таблице:

Совместимые платформы Несовместимые платформы
net8.0-android, monoandroid, monoandroidXX.X
net8.0-ios monotouch, xamarinios, xamarinios10
net8.0-macos monomac, xamarinmac, xamarinmac20
net8.0-tvos xamarintvos
xamarinwatchos

Примечание.

Библиотеки .NET Standard, не зависящие от несовместимых платформ, перечисленных выше, по-прежнему совместимы с .NET 8.

Если пакет в NuGet указывает на совместимость с любой из совместимых платформ, приведенных выше, независимо от того, включая несовместимые платформы, то пакет совместим. Совместимые пакеты NuGet можно добавить в собственный проект .NET с помощью диспетчера пакетов NuGet в Visual Studio.

Если не удается найти совместимую версию пакета NuGet с .NET 8, необходимо:

  • Перекомпилируйте пакет с помощью TFM .NET, если вы владеете кодом.
  • Найдите предварительный выпуск пакета .NET 8.
  • Замените зависимость альтернативой, совместимой с .NET 8.

Сведения о переносе кода Xamarin.Essentials в .NET для Android или .NET для приложения iOS см. в статье "Миграция кода Xamarin.Essentials" в .NET для Android и .NET для приложений iOS.

Компиляция и устранение неполадок

После разрешения зависимостей и добавления файлов кода и ресурсов в собственный проект .NET необходимо создать проект. Все ошибки помогут вам выполнить следующие действия.

Совет

  • Удалите все папки bin и obj из всех проектов перед открытием и сборкой проектов в Visual Studio, особенно при изменении версий .NET.
  • Удалите созданный Resource.designer.cs файл из проекта Android.