Share via


Changements de comportement de l’API liée à l’assembly pour la publication monofichier

Plusieurs API liées à l’emplacement d’un fichier d’assembly ont des changements de comportement lorsqu’elles sont appelées dans un format de publication à fichier unique.

Description de la modification

Dans la publication à fichier unique pour .NET 5 et versions ultérieures, les assemblys groupés sont chargés à partir de la mémoire au lieu d’être extraits sur le disque. Pour les applications publiées à fichier unique, cela signifie que certaines API liées à l’emplacement retournent des valeurs différentes sur .NET 5 et versions ultérieures par rapport aux versions précédentes de .NET. Les modifications sont les suivantes :

API Versions précédentes .NET 5 et versions ultérieures
Assembly.Location Retourne le chemin du fichier DLL extrait Retourne une chaîne vide pour les assemblys groupés
Assembly.CodeBase Retourne le chemin du fichier DLL extrait Lève une exception pour les assemblys groupés
Assembly.GetFile(String) Retourne null pour les assemblys groupés Lève une exception pour les assemblys groupés
Environment.GetCommandLineArgs()[0] La valeur est le nom de la DLL du point d’entrée La valeur est le nom de l’exécutable hôte
AppContext.BaseDirectory La valeur est le répertoire d’extraction temporaire La valeur est le répertoire contenant du fichier exécutable hôte

Version introduite

5,0

Évitez les dépendances sur l’emplacement de fichier des assemblys lors de la publication en tant que fichier unique.

API affectées