次の方法で共有


IMetaDataAssemblyImport::FindAssembliesByName Method

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

Syntax

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

Parameters

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

szPrivateBin [in]セミコロンで区切られたサブディレクトリの一覧 (例: "bin;bin2")、ルート ディレクトリの下でアセンブリを検索します。 これらのディレクトリは、既定のプローブ規則で指定されているものに加えてプローブされます。

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

ppIUnk [out] IMetadataAssemblyImport インターフェイス ポインターを保持する配列。

cMax [in] ppIUnkに配置するインターフェイス ポインターの最大数。

pcAssemblies [out]返されるインターフェイス ポインターの数(つまり、実際に ppIUnkに配置されたインターフェイス ポインターの数)。

Return Value

HRESULT Description
S_OK FindAssembliesByName が正常に返されました。
S_FALSE アセンブリはありません。

Remarks

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

FindAssembliesByName メソッドでは、アセンブリ解決ロジックを呼び出すために、プロセスで CLR を初期化する必要があります。 したがって、FindAssembliesByNameを呼び出す前に CoInitializeEE を呼び出す (COINITEE_DEFAULTを渡す) 必要があります。その後、CoUninitializeCor の呼び出しに従う必要があります。

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

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

Requirements

プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。

Header: Cor.h

Library: CorGuids.lib

See also