Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
Aanbevolen actie
Vermijd afhankelijkheden van de bestandslocatie van assembly's bij het publiceren als één bestand.