Обновление проектов Xamarin.Android, Xamarin.iOS и Xamarin.Mac до .NET
Чтобы обновить собственные проекты Xamarin до .NET, необходимо:
- Обновите файл проекта, чтобы он был стилем пакета SDK.
- Обновите или замените несовместимые зависимости версиями .NET 8.
- Скомпилируйте и протестируйте приложение.
Для большинства проектов вам не нужно изменять пространства имен или выполнять другие перезаписи.
Чтобы упростить процесс обновления, рекомендуется создать проект .NET с тем же типом и именем, что и собственный проект Xamarin, а затем скопировать код. Это подход, описанный ниже.
Создание нового проекта
В Visual Studio создайте новый проект .NET с тем же типом и именем, что и собственный проект Xamarin. Например, чтобы обновить Xamarin.Android на .NET для Android, выберите шаблон проекта приложения Android:
Новый проект должен иметь то же имя проекта и пакета, что и существующий проект, и его следует поместить в новую папку. Открытие файла проекта подтвердит наличие проекта в стиле пакета 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.