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


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

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

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

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

AssemblyLoadContext

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

Загрузка сведений

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

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

В руководстве по созданию приложения .NET с подключаемыми модулями описывается создание пользовательского assemblyLoadContext. Он использует AssemblyDependencyResolver для разрешения зависимостей подключаемого модуля. Этот учебник правильно изолирует зависимости подключаемого модуля от ведущего приложения.

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

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

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

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