Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/core/compatibility/11.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ See [Breaking changes in EF Core 11](/ef/core/what-is-new/ef-core-11.0/breaking-
| Title | Type of change |
|-------------------------------------------------------------------|-------------------|
| [Minimum Android API level raised to 24](maui/11/android-minimum-api-level.md) | Behavioral change |
| [Mono project properties no longer configure mobile apps](maui/11/mono-project-properties.md) | Source incompatible/behavioral change |

## SDK and MSBuild

Expand Down
78 changes: 78 additions & 0 deletions docs/core/compatibility/maui/11/mono-project-properties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
title: "Breaking change - Mono project properties no longer configure mobile apps"
description: "Learn about the breaking change in .NET 11 where Mono project properties no longer configure mobile apps."
ms.date: 10/21/2026
ai-usage: ai-generated
ms.custom: https://github.com/dotnet/docs/issues/56477
---

# Mono project properties no longer configure mobile apps

In .NET 11, Mono project properties no longer configure mobile apps.

## Version introduced

.NET 11

## Previous behavior

The following Android settings controlled Mono AOT, LLVM, profiling, or the
Mono interpreter:

- `RunAOTCompilation`
- `AotAssemblies`
- `EnableLLVM`
- `AndroidEnableProfiledAot`
- `AndroidAotMode`
- `AndroidAotAdditionalArguments`
- `AndroidExtraAotOptions`
- `@(AndroidAotProfile)`
- `AndroidAotEnableLazyLoad`
- `AndroidUseInterpreter`
- `UseInterpreter`

`AndroidEnableMarshalMethods` isn't Mono-specific, but .NET 10 Android projects
could use it with the previous code-generation pipeline.

The following Apple settings controlled the Mono interpreter, SGen garbage
collector (GC), LLVM, float handling, interface layout, or Mono AOT:

- `UseInterpreter`
- `MtouchInterpreter`
- `EnableSGenConc`
- `MtouchEnableSGenConc`
- `MtouchUseLlvm`
- `MtouchFloat32`
- `MonoUseCompressedInterfaceBitmap`
- `RunAotCompilation`
- `AotAssemblies`
- `AotCompileMaxDegreeOfParallelism`

## New behavior

The Mono-specific settings don't provide their previous behavior on CoreCLR.
Some settings have no effect. Others cause a build warning or error.

`AndroidEnableMarshalMethods` can't be combined with ReadyToRun. This
combination causes build error `XA1049`.

## Type of breaking change

This change can affect [source compatibility](../../categories.md#source-compatibility) and [behavior](../../categories.md#behavioral-change).

## Reason for change

Most of these settings configure Mono components that aren't used by CoreCLR.
`AndroidEnableMarshalMethods` is included because its previous build
configuration isn't compatible with the CoreCLR ReadyToRun path.

## Recommended action

- Remove the Mono-specific settings from .NET 11 projects, or set them only for
.NET 10.
- Don't enable `AndroidEnableMarshalMethods` in a CoreCLR ReadyToRun build.
- Retest the app's performance and memory use.

## Affected APIs

None. This change affects MSBuild properties and items.
2 changes: 2 additions & 0 deletions docs/core/compatibility/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ items:
items:
- name: Minimum Android API level raised to 24
href: maui/11/android-minimum-api-level.md
- name: Mono project properties no longer configure mobile apps
href: maui/11/mono-project-properties.md
- name: SDK and MSBuild
items:
- name: dnx scripts bypass global.json SDK selection
Expand Down
Loading