Поделиться через


Загрузка зависимостей в .NET

Каждое приложение .NET имеет зависимости. Даже простое hello world приложение имеет зависимости от частей библиотек классов .NET.

Общие сведения о логике загрузки сборок по умолчанию в .NET помогут устранить типичные проблемы с развертыванием.

В некоторых приложениях зависимости динамически определяются во время выполнения. В этих ситуациях важно понять, как загружаются управляемые сборки и неуправляемые зависимости.

AssemblyLoadContext (контекст загрузки сборок)

AssemblyLoadContext API является ключевым элементом в архитектуре загрузки .NET. Статья "Understanding AssemblyLoadContext" представляет концептуальный обзор дизайна.

Сведения о загрузке

Сведения о алгоритме загрузки подробно рассматриваются в нескольких статьях:

Создайте приложение с подключаемыми модулями

В руководстве по созданию приложения .NET с подключаемыми модулями описывается, как создать пользовательский AssemblyLoadContext. Он использует AssemblyDependencyResolver чтобы разрешить зависимости подключаемого модуля. Руководство правильно изолирует зависимости подключаемого модуля от хост-приложения.

Возможность выгрузки сборки

Пошаговое руководство по использованию и отладке возможности выгрузки сборок в .NET. В нем показано, как загрузить приложение .NET, выполнить его, а затем выгрузить. В статье также приведены советы по отладке.

Сбор подробных сведений о загрузке сборок

В статье "Сбор подробных сведений о загрузке сборок" описывается, как собирать подробные сведения о загрузке управляемых сборок во время выполнения. Он использует средство dotnet-trace для записи событий загрузчика сборок в трассировке выполняемого процесса.