.NET 中的依赖项加载

每个 .NET 应用程序都有依赖项。 即使是简单的 hello world 应用程序也在 .NET 类库的各个部分中有依赖项。

了解 .NET 中的默认程序集加载逻辑有助于排查典型的部署问题。

在某些应用程序中,在运行时动态确定依赖项。 在这些情况下,了解托管程序集和非托管依赖项的加载方式至关重要。

AssemblyLoadContext

AssemblyLoadContext API 是 .NET 加载设计的核心。 了解 AssemblyLoadContext 一文提供了有关该设计的概念性概述。

加载详细信息

以下几篇文章简要介绍了加载算法的详细信息:

使用插件创建应用

创建包含插件的 .NET 应用程序教程介绍了如何创建自定义 AssemblyLoadContext。 它使用 AssemblyDependencyResolver 来解析插件的依赖项。 该教程正确地将插件依赖项与主机应用程序隔离开来。

程序集卸载功能

如何在 .NET 中使用和调试程序集可卸载性一文是分步教程。 其中显示了如何加载、执行和卸载 .NET 应用程序。 该文章还提供了调试提示。

收集详细的程序集加载信息

收集详细的程序集加载信息一文介绍了如何收集运行时中托管程序集加载的详细信息。 它使用 dotnet-trace 工具在正在运行的进程的跟踪中捕获程序集加载程序事件。