Android framework version
net9.0-android
Affected platform version
any
Description
Context: #9525
Context: dotnet/runtime#109724
As seen in the above issue, there is currently the expectation in .NET:
PublishTrimmed=true set for all configurations, it means "I intend to trim this project"
Not all builds need to actually run illink. For console apps, dotnet build doesn't trim or illink, dotnet publish does trim and run illink.
.NET SDK sets various feature switches based on PublishTrimmed
Unfortunately, Android doesn't follow this pattern:
Debug mode, PublishTrimmed=false for build performance, inner loop
Release mode, PublishTrimmed=true
To fix this in .NET 10, we should:
Set PublishTrimmed=true always
Disable illink in Debug mode via other means
Steps to Reproduce
dotnet new android
dotnet build (debug mode)
Observe RuntimeInstanceNotAllowed Error Initializing XmlSerializer on Android Release Build in .NET 9 runtime#109724
Did you find any workaround?
For the case above you could set $(_DefaultValueAttributeSupport) as done in #9525 .