|
67 | 67 | Shader attribute scanning, TextureLoaderStore fallback chain, bindable system, |
68 | 68 | resource store extension routing — all reflection-dependent. |
69 | 69 | ppy.osu.Framework.Android: Android-specific host, input handling, surface wrappers. |
70 | | - ppy.Veldrid.SPIRV: SPIR-V cross-compiler; dynamically loads shader reflector types. --> |
71 | | - <assembly fullname="ppy.osu.Framework" preserve="all" /> |
72 | | - <assembly fullname="ppy.osu.Framework.Android" preserve="all" /> |
73 | | - <assembly fullname="ppy.Veldrid.SPIRV" preserve="all" /> |
| 70 | + ppy.Veldrid.SPIRV: SPIR-V cross-compiler; dynamically loads shader reflector types. |
| 71 | +
|
| 72 | + NOTE: ppy.osu.Framework and ppy.osu.Framework.Android are intentionally omitted |
| 73 | + from this descriptor. ILLink (in .NET Android Full-link mode) cannot resolve these |
| 74 | + assemblies during the trimmer pass — they originate from a net10.0 NuGet package |
| 75 | + that is not visible in ILLink's assembly search path for the android TFM. The |
| 76 | + linker therefore cannot apply a preserve="all" rule, and having the entries only |
| 77 | + generates "Could not resolve assembly" warnings with no benefit. The assemblies |
| 78 | + are included intact in the APK (ILLink cannot trim what it cannot find), and every |
| 79 | + reachable type is rooted from osu.Android / osu.Game which ARE in the preserve list. --> |
| 80 | + <assembly fullname="ppy.Veldrid.SPIRV" preserve="all" /> |
74 | 81 |
|
75 | 82 | <!-- ═══════════════════════════════════════════════════════════════════════ |
76 | 83 | Audio (ManagedBass) |
|
89 | 96 | compile time, but at runtime it discovers RealmObject schemas by |
90 | 97 | reflecting over IRealmObject-derived types and their [MapTo]/[Indexed] |
91 | 98 | attributes. Stripping any Realm type (or any osu RealmObject property) |
92 | | - causes a RealmException at database open time. --> |
93 | | - <assembly fullname="Realm" preserve="all" /> |
94 | | - <assembly fullname="Realms.PlatformHelpers" preserve="all" /> |
| 99 | + causes a RealmException at database open time. |
| 100 | + NOTE: Realms.PlatformHelpers was a separate assembly in older Realm SDK |
| 101 | + versions (≤ 10.x) and was merged into Realm in v11. Realm 20.x does not |
| 102 | + ship it as a standalone assembly, so the entry is omitted here. --> |
| 103 | + <assembly fullname="Realm" preserve="all" /> |
95 | 104 |
|
96 | 105 | <!-- ═══════════════════════════════════════════════════════════════════════ |
97 | 106 | JSON / binary serialisation |
|
147 | 156 | The DI container (IServiceProvider / ServiceCollection) scans constructor |
148 | 157 | parameters via ConstructorInfo.GetParameters() to wire services at runtime. |
149 | 158 | IOptions<T> binders use PropertyInfo reflection to populate typed config |
150 | | - objects from key-value pairs. ILoggerFactory finds providers by type. --> |
| 159 | + objects from key-value pairs. ILoggerFactory finds providers by type. |
| 160 | + NOTE: Microsoft.Extensions.Configuration (non-Abstractions) and |
| 161 | + Microsoft.Extensions.Http are NOT directly referenced by this project and |
| 162 | + are not shipped as standalone assemblies in .NET 10 (their APIs are in-box |
| 163 | + or merged into the Abstractions layer). Adding them here would generate |
| 164 | + "Could not resolve assembly" linker warnings with no preservation benefit. --> |
151 | 165 | <assembly fullname="Microsoft.Extensions.DependencyInjection" preserve="all" /> |
152 | 166 | <assembly fullname="Microsoft.Extensions.DependencyInjection.Abstractions" preserve="all" /> |
153 | 167 | <assembly fullname="Microsoft.Extensions.Logging" preserve="all" /> |
154 | 168 | <assembly fullname="Microsoft.Extensions.Logging.Abstractions" preserve="all" /> |
155 | 169 | <assembly fullname="Microsoft.Extensions.Options" preserve="all" /> |
156 | | - <assembly fullname="Microsoft.Extensions.Configuration" preserve="all" /> |
157 | 170 | <assembly fullname="Microsoft.Extensions.Configuration.Abstractions" preserve="all" /> |
158 | 171 | <assembly fullname="Microsoft.Extensions.Primitives" preserve="all" /> |
159 | | - <assembly fullname="Microsoft.Extensions.Http" preserve="all" /> |
160 | 172 |
|
161 | 173 | <!-- ═══════════════════════════════════════════════════════════════════════ |
162 | 174 | SQLite stack |
|
0 commit comments