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
Action recommandée
Évitez les dépendances sur l’emplacement de fichier des assemblys lors de la publication en tant que fichier unique.