Delen via


Wijzigingen in het API-gedrag van assembly's voor de publicatie-indeling van één bestand

Meerdere API's met betrekking tot de bestandslocatie van een assembly vertonen gedragswijzigingen wanneer ze worden aangeroepen in een formaat voor publiceren als enkel bestand.

Beschrijving wijzigen

In publicatie met één bestand voor .NET 5 en latere versies worden gebundelde assembly's uit het geheugen geladen in plaats van uitgepakt naar schijf. Voor gepubliceerde apps met één bestand betekent dit dat bepaalde locatiegerelateerde API's verschillende waarden retourneren op .NET 5 en hoger dan in eerdere versies van .NET. De wijzigingen zijn als volgt:

API (Application Programming Interface) Vorige versies .NET 5 en hoger
Assembly.Location Retourneert het uitgepakte DLL-bestandspad Retourneert een lege tekenreeks voor gebundelde assemblies
Assembly.CodeBase Retourneert het uitgepakte DLL-bestandspad Genereert een exceptie voor gebundelde assembly's
Assembly.GetFile(String) Retourneert null voor gebundelde assemblies Genereert een exceptie voor gebundelde assembly's
Environment.GetCommandLineArgs()[0] Waarde is de naam van de ingangspunt-DLL De waarde is de naam van het uitvoerbare hostprogramma.
AppContext.BaseDirectory De waarde is de map voor tijdelijke extractie. Waarde is de map waarin het host-uitvoerbestand zich bevindt.

Geïntroduceerde versie

5,0

Vermijd afhankelijkheden van de bestandslocatie van assembly's bij het publiceren als één bestand.

Betreffende API's