Caricamento delle dipendenze in .NET
Ogni applicazione .NET ha delle dipendenze. Anche l'app semplice hello world
ha dipendenze da parti delle librerie di classi .NET.
La comprensione della logica predefinita di caricamento degli assembly in .NET ti consente di risolvere i problemi di distribuzione tipici.
In alcune applicazioni le dipendenze vengono determinate in modo dinamico in fase di esecuzione. In queste situazioni, è fondamentale comprendere come vengono caricati gli assembly gestiti e le dipendenze non gestite.
AssemblyLoadContext
L'API AssemblyLoadContext è fondamentale per la progettazione del caricamento di .NET. L'articolo Comprendere AssemblyLoadContext offre una panoramica concettuale della progettazione.
Dettagli del caricamento
I dettagli dell'algoritmo di caricamento sono trattati brevemente in diversi articoli:
- Algoritmo di caricamento dell'assembly gestito
- Algoritmo di caricamento dell'assembly satellite
- Algoritmo di caricamento della libreria non gestita (nativa)
- Probe predefinito
Creare un'app con i plug-in
L'esercitazione Creare un'applicazione .NET con plug-in descrive come creare un assembly AssemblyLoadContext personalizzato. Usa un AssemblyDependencyResolver per risolvere le dipendenze del plug-in. L'esercitazione isola correttamente le dipendenze del plug-in dall'applicazione host.
Assembly non caricabili
L'articolo Come usare ed eseguire il debug di assembly non caricabili in .NET è un'esercitazione guidata. Illustra come caricare un'applicazione .NET, eseguirla e quindi scaricarla. L'articolo fornisce anche suggerimenti per il debug.
Raccogliere informazioni dettagliate sul caricamento di assembly
L'articolo Raccogliere informazioni dettagliate sul caricamento di assembly descrive come raccogliere informazioni dettagliate sul caricamento di assembly gestiti nel runtime. Usa lo strumento dotnet-trace per acquisire gli eventi del caricatore di assembly nell’analisi di un processo in esecuzione.