Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Mobilní aplikace pro .NET 11 můžou používat CoreCLR JIT, ReadyToRun (R2R) a interpret CoreCLR. Dostupné režimy stále závisejí na konfiguraci cíle a sestavení.
Verze byla představena
.NET 11
Předchozí chování
Mobilní aplikace .NET 10 mohou používat Mono JIT, Mono AOT, Mono AOT s LLVM a interpret Mono. Dostupné režimy závisely na cíli a konfiguraci sestavení.
Některé aplikace používaly interpret Mono pouze pro vybraný seznam assembly. To těmto aplikacím pomohlo vyvážit kompatibilitu a rychlost.
Nové chování
Mobilní aplikace pro .NET 11 můžou používat CoreCLR JIT, ReadyToRun (R2R) a interpret CoreCLR. Dostupné režimy stále závisejí na konfiguraci cíle a sestavení.
R2R je technologie AOT, ale nejedná se o nový název Mono AOT. Uchovává il a metadata v aplikaci a může použít JIT nebo interpret, když to cíl umožňuje.
Buildy verze Pro Android používají CoreCLR R2R k předkompilování části aplikace a pro zbytek používají JIT.
MauiEnableFullReadyToRun=true se vztahuje na celou aplikaci.
Aplikace může stále používat JIT za běhu pro dynamické chování. Ladění buildů používá méně R2R, takže většina aplikace běží s JIT.
Sestavení Apple Release předkompilují celou aplikaci pomocí R2R a mohou za běhu používat interpret pro dynamické chování. Ladicí sestavení používá méně R2R, takže většina aplikace běží s interpretem.
NativeAOT je další možností generování kódu na mobilních platformách. Liší se od Mono AOT i CoreCLR R2R. Android NativeAOT je experimentální v .NET 11.
Typ zásadní změny
Tato změna může ovlivnit kompatibilitu zdrojového kódu a chování.
Důvod změny
CoreCLR používá vlastní kompilátor a prováděcí model. Nastavení Mono AOT neřídí CoreCLR R2R.
Doporučená akce
- Použijte výchozí hodnoty R2R z mobilní úlohy.
- Nepokoušejte se přeložit jednotlivá nastavení Mono AOT do nastavení R2R.
-
MauiEnableFullReadyToRunpoužívejte až po změření aplikace. - Změřte čas spuštění, rychlost, využití paměti a velikost aplikace.
- Pokud uvažujete o NativeAOT, projděte si pokyny k nasazení nativní AOT .NET MAUI, protože se jedná o samostatný model nasazení s různými omezeními. Považovat Android NativeAOT za experimentální v .NET 11.
Ovlivněná rozhraní API
Žádná spravovaná rozhraní API nejsou odebrána. Pokud aplikace používá CoreCLR, následující vlastnosti a položky MSBuild už neposkytují svůj efekt generování kódu Mono:
-
Android:
RunAOTCompilation,AotAssemblies,EnableLLVM,AndroidEnableProfiledAot,AndroidAotMode,AndroidExtraAotOptions,@(AndroidAotProfile),AndroidAotEnableLazyLoad,AndroidAotAdditionalArguments,AndroidUseInterpreter,UseInterpreter, aAndroidEnableMarshalMethods. -
iOS, tvOS a Mac Catalyst:
UseInterpreter,MtouchInterpreter,MtouchUseLlvm,MtouchFloat32,MonoUseCompressedInterfaceBitmap,RunAotCompilation,AotAssemblies, aAotCompileMaxDegreeOfParallelism.
Tato nastavení konfigurují kompilaci Mono AOT, LLVM, výběr interpreta, vstupy AOT nebo generované maršalovací metody. Nekonfigurují pipeline CoreCLR ReadyToRun. Podrobné chování migrace a diagnostiky sestavení najdete v tématu Vlastnosti projektu Mono už nekonfigurují mobilní aplikace.