Partilhar via


Carregamento de dependências em .NET

Todas as aplicações .NET têm dependências. Mesmo a aplicação simples hello world tem dependências em partes das bibliotecas de classes .NET.

Compreender a lógica padrão de carregamento de assembly no .NET pode ajudar a resolver problemas típicos de implementação.

Em algumas aplicações, as dependências são determinadas dinamicamente em tempo de execução. Nestas situações, é fundamental compreender como os assemblies geridos e as dependências não geridas são carregados.

AssemblyLoadContext

A AssemblyLoadContext API é central para o design de carregamento do .NET. O artigo Compreender o AssemblyLoadContext fornece uma visão conceptual do design.

Detalhes de carregamento

Os detalhes do algoritmo de carregamento são brevemente abordados em vários artigos:

Crie uma aplicação com plugins

O tutorial Criar uma aplicação .NET com plugins descreve como criar um AssemblyLoadContext personalizado. Utiliza um AssemblyDependencyResolver para resolver as dependências do plugin. O tutorial isola corretamente as dependências do plugin da aplicação de alojamento.

Possibilidade de descarregamento da montagem

O artigo sobre como utilizar e depurar a descarregabilidade de assembly no .NET é um tutorial detalhado. Mostra como carregar uma aplicação .NET, executá-la e depois descarregá-la. O artigo também fornece dicas de depuração.

Recolher informações detalhadas sobre o carregamento da montagem

O artigo Recolher informação detalhada sobre o carregamento de assemblies descreve como recolher informações detalhadas sobre o carregamento gerido de assemblies em tempo de execução. Utiliza a ferramenta dotnet-trace para capturar eventos de carregamento de assemblies num traço de um processo em execução.