Chargement des dépendances dans .NET

Chaque application .NET possède des dépendances. Même l’application simple hello world possède des dépendances sur des parties des bibliothèques de classes .NET.

Comprendre la logique de chargement d’assembly par défaut dans .NET peut vous aider à résoudre les problèmes classiques de déploiement.

Dans certaines applications, les dépendances sont déterminées dynamiquement au temps d’exécution. Dans ces situations, il est essentiel de comprendre la manière dont les assemblys managés et les dépendances non managées sont chargés.

AssemblyLoadContext

L’API AssemblyLoadContext est centrale pour la conception de chargement .NET. L’article A propos de AssemblyLoadContext fournit une vue d’ensemble conceptuelle de la conception.

Chargement des détails

Les détails de l’algorithme de chargement sont décrits brièvement dans plusieurs articles :

Créer une application avec des plug-ins

Le didacticiel Créer une application .NET Core avec des plug-ins explique comment créer un AssemblyLoadContext personnalisé. Il utilise un AssemblyDependencyResolver pour résoudre les dépendances du plug-in. Le didacticiel isole correctement les dépendances du plug-in à partir de l’application d’hébergement.

Non-chargeabilité d’assembly

L’article Comment utiliser et déboguer la non-chargeabilité d’assembly dans .NET est un tutoriel pas à pas. Il montre comment charger une application .NET, l’exécuter, puis la décharger. L’article fournit également des conseils de débogage.

Collecter des informations détaillées sur le chargement d’assembly

L’article Collecter des informations détaillées sur le chargement d’assembly explique comment collecter des informations détaillées sur le chargement d’assemblys managés dans le runtime. Il utilise l’outil dotnet-trace pour capturer les événements du chargeur d’assembly dans une trace d’un processus en cours d’exécution.