На мобильных платформах MAUI работает только на CoreCLR в .NET 11 Preview 6: аварийный выход через Mono закрыт
.NET 11 Preview 6 убирает отдельный путь Mono для MAUI на Android, iOS и Mac Catalyst. CoreCLR теперь единственная мобильная среда выполнения, аварийный выход UseMonoRuntime закрыт, а GA запланирован на ноябрь 2026 года.
Два месяца назад MAUI переключил свою мобильную среду выполнения по умолчанию на CoreCLR в .NET 11 Preview 4, и заметки к выпуску дали вам аварийный выход: установите <UseMonoRuntime>true</UseMonoRuntime>, и ваши сборки для Android, iOS и Mac Catalyst возвращались к прежней среде выполнения. Этот выход закрывается. В CoreCLR Progress and the Mono Timeline for .NET MAUI Дэвид Ортино подтверждает, что начиная с .NET 11 Preview 6 (опубликован 2026-07-10) CoreCLR является единственной средой выполнения, предоставляемой для мобильных приложений MAUI. Microsoft “больше не предоставляет отдельный путь Mono для Android, iOS или Mac Catalyst”.
От значения по умолчанию к единственному варианту
Различие важно. В Preview 4 CoreCLR был вариантом по умолчанию, а Mono находился в одном изменении свойства от вас, что явно подавалось как временное разблокирование, пока вы заводите отчёт о регрессии. Preview 6 убирает эту позицию с двумя средами выполнения на мобильных платформах. Поддерживаемого target Mono для мобильных голов MAUI больше нет, и свойство отказа, которое раньше возвращало их обратно, больше не является частью истории. Если ваш проект или транзитивная зависимость опирались на UseMonoRuntime, чтобы обойти регрессию CoreCLR, этот план истекает сейчас, а не на GA.
Blazor WebAssembly не затронут. WebAssembly по-прежнему работает на Mono, потому что у CoreCLR нет target для Wasm, и это не меняется.
<!-- Preview 4: still an option -->
<PropertyGroup Condition="'$(TargetFramework)' == 'net11.0-android'">
<UseMonoRuntime>true</UseMonoRuntime>
</PropertyGroup>
<!-- Preview 6: no separate Mono path for MAUI mobile -->
Где оказались цифры
Честной частью анонса Preview 4 было признание регрессий в более крупных приложениях Android. Preview 6 читается спокойнее. Ортино сообщает, что iOS и Mac Catalyst в целом быстрее, чем были на Mono, а Android теперь укладывается примерно в 10% от Mono как по времени запуска, так и по размеру приложения. Это достаточно близко, чтобы объединение среды выполнения, разделяющей тот же JIT, GC и диагностику, что и ASP.NET Core, перестало быть компромиссом, о котором вы спорите, и стало основой, на которой вы строите. Это также оставляет NativeAOT для MAUI на столе как следующий шаг, что никогда не было возможно, пока мобильные платформы сидели на отдельной среде выполнения.
Что протестировать до ноября
GA намечен на ноябрь 2026 года, и окно preview — это именно тот момент, когда приоритеты ещё могут сместиться на основе вашего отзыва. Конкретно:
- Соберите своё приложение на Preview 6 и убедитесь, что оно загружается. Платформы, которые CoreCLR отбросил ранее в цикле .NET 11 (Android x86, API 23 и ниже, старые embedding-API Xamarin.Android), падают на этапе сборки или загрузки, а не тихо в продакшене.
- Запустите сборку в Release на репрезентативном недорогом устройстве Android и сравните холодный запуск, тёплый запуск и размер пакета с .NET 10. Цифра 10% — это агрегат Microsoft, а не обещание относительно вашего графа зависимостей.
- Проверьте любую давно не тронутую библиотеку Xamarin.Android. Если она использует embedding-API, она не загрузится на CoreCLR, и вам нужна замена в очереди до того, как поезд GA уйдёт.
Среда выполнения, на которой вы выпустите MAUI в ноябре, определяется сейчас. Preview 6 — это последний удобный момент, чтобы выяснить, согласно ли с этим ваше приложение. Полный отчёт о прогрессе и график находятся в .NET Blog.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.