.NET での依存関係の読み込み

すべての .NET アプリケーションには依存関係があります。 単純な hello world アプリでも、.NET クラス ライブラリの一部に依存関係があります。

.NET の既定のアセンブリ読み込みロジックについて理解すると、デプロイに関する一般的な問題をトラブルシューティングするのに役立ちます。

アプリケーションによっては、依存関係が実行時に動的に決定されます。 このような状況では、マネージド アセンブリおよびアンマネージドの依存関係がどのように読み込まれるかを理解することが重要です。

AssemblyLoadContext

AssemblyLoadContext API は、.NET 読み込みデザインの中核となるものです。 AssemblyLoadContext についての記事では、設計の概念についての概要を示します。

読み込みの詳細

読み込みアルゴリズムの詳細については、次のいくつかの記事で簡単に説明されています。

プラグインを使用してアプリを作成する

プラグインを使用した .NET アプリケーションの作成に関するチュートリアルでは、カスタムの AssemblyLoadContext を作成する方法について説明します。 ここでは AssemblyDependencyResolver を使用して、プラグインの依存関係を解決します。 このチュートリアルでは、ホスト アプリケーションからプラグインの依存関係を正しく分離します。

アセンブリのアンローダビリティ

.NET でアセンブリのアンローダビリティを使用およびデバッグする方法に関する記事は、ステップ バイ ステップのチュートリアルです。 .NET アプリケーションを読み込んで実行し、アンロードする方法が示されます。 この記事ではデバッグのヒントも示します。

アセンブリの読み込みに関する詳細情報の収集

アセンブリの読み込みに関する詳細情報の収集」の記事では、ランタイムでのマネージド アセンブリの読み込みに関する詳細情報を収集する方法が説明されています。 実行中のプロセスのトレースでアセンブリ ローダー イベントをキャプチャするために、dotnet-trace ツールが使用されています。