IMetaDataAssemblyImport::FindAssembliesByName メソッド

共通言語ランタイム (CLR: Common Language Runtime) で参照の解決に使用されている標準規則を使用して、指定した szAssemblyName パラメーターを持つアセンブリの配列を取得します。

HRESULT FindAssembliesByName (
    [in]  LPCWSTR     szAppBase, 
    [in]  LPCWSTR     szPrivateBin, 
    [in]  LPCWSTR     szAssemblyName, 
    [out] IUnknown    *ppIUnk[], 
    [in]  ULONG       cMax, 
    [out] ULONG       *pcAssemblies
);

パラメーター

  • szAppBase
    [入力] 特定のアセンブリを検索するルート ディレクトリ。 この値が null に設定されている場合、FindAssembliesByName が検索するのは、アセンブリのグローバル アセンブリ キャッシュのみです。

  • szPrivateBin
    [入力] ルート ディレクトリの下の、セミコロンで区切られたサブディレクトリの一覧 ("bin;bin2" など)。アセンブリが検索されます。 既定の調査規則で指定されたディレクトリ以外に、これらのディレクトリがプローブされます。

  • szAssemblyName
    [入力] 検索するアセンブリの名前。 この文字列の書式は、AssemblyName のクラス参照ページで定義されます。

  • ppIUnk
    [入力] IMetadataAssemblyImport インターフェイス ポインターが配置される IUnknown 型の配列。

  • cMax
    [出力] ppIUnk 内に配置できるインターフェイス ポインターの最大数。

  • pcAssemblies
    [出力] 返されたインターフェイス ポインターの数。 つまり、ppIUnk 内に実際に配置されたインターフェイス ポインターの数。

戻り値

HRESULT

説明

S_OK

FindAssembliesByName が正常に終了しました。

S_FALSE

アセンブリはありません。

解説

アセンブリ名を指定すると、FindAssembliesByName メソッドは、アセンブリ参照を解決するための標準規則に従ってアセンブリを検索します。 詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。FindAssembliesByName を使用すると、呼び出し元は、アプリケーション ベース、プライベート検索パスなど、アセンブリ リゾルバー コンテキストのさまざまな側面を構成できます。

FindAssembliesByName メソッドでは、アセンブリ解決ロジックを起動するために、プロセス内で CLR を初期化する必要があります。 したがって、COINITEE_DEFAULT を渡して CoInitializeEE を呼び出してから、FindAssembliesByName を呼び出し、CoUninitializeCor を呼び出す必要があります。

FindAssembliesByName は、渡されたアセンブリ名のアセンブリ マニフェストを含むファイルへの IMetaDataImport ポインターを返します。 特定のアセンブリ名が完全に指定されていない場合 (バージョンが含まれていない場合など)、複数のアセンブリが返される可能性があります。

コンパイル時に参照アセンブリを検索しようとするコンパイラでは、FindAssembliesByName が一般的に使用されます。

必要条件

プラットフォーム : 「.NET Framework システム要件」を参照

ヘッダー : Cor.h

ライブラリ : MsCorEE.dll でリソースとして使用されていること

.NET Framework のバージョン : 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

参照

参照

IMetaDataAssemblyImport インターフェイス

概念

ランタイムがアセンブリを検索する方法