Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Assembly.GetCallingAssembly() ondersteunt nu Native AOT en maakt gebruik van stack-traceringsgegevens om de aanroeper op te lossen. Als ondersteuning voor stacktraces is uitgeschakeld, genereert de methode nu NotSupportedException op zowel Native AOT als CoreCLR.
Geïntroduceerde versie
.NET 11 preview 7
Vorig gedrag
Eerder, op systeemeigen AOT, Assembly.GetCallingAssembly() gooide PlatformNotSupportedExceptionaltijd . Voorheen retourneerde de methode op CoreCLR de aanroepende assembly, zelfs als StackTraceSupport was ingesteld op false.
Nieuw gedrag
Vanaf .NET 11 geeft Assembly.GetCallingAssembly() bij Native AOT de aanroepende assembly terug door de stacktraceringsgegevens te inspecteren. Vanaf .NET 11 genereert de methode, voor zowel Native AOT als CoreCLR, NotSupportedException als de StackTraceSupport-functieschakelaar is ingesteld op false.
Het uitzonderingsbericht is:
Kan stacktraceringsgegevens niet ophalen wanneer de functieswitch StackTraceSupport is ingesteld op false.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Voor het retourneren van een juiste aanroeper Assembly.GetCallingAssembly() zijn stack-traceringsgegevens vereist. Als ondersteuning voor stacktracering niet beschikbaar is, kan de runtime de aanroeper niet betrouwbaar bepalen. De runtime genereert NotSupportedException nu in plaats van een onjuist resultaat te retourneren. Zie dotnet/runtime#129963 voor informatie over systeemeigen AOT-ondersteuning.
Aanbevolen actie
Als u publiceert met StackTraceSupport ingesteld op false en uw app Assembly.GetCallingAssembly() aanroept, verwacht u NotSupportedException. Gebruik een van de volgende opties:
- Schakel ondersteuning voor stacktracering in door de schakeloptie of instelling
StackTraceSupportte verwijderen naartrue. - Verwijder oproepen naar Assembly.GetCallingAssembly().
- Vang NotSupportedException op en handel het fallbackpad expliciet af.