次の方法で共有


IMetaDataAssemblyImport::FindAssembliesByName メソッド

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

構文

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

パラメーター

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

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

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

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

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

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

戻り値

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

解説

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

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

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

FindAssembliesByName は、コンパイル時に参照アセンブリの検索を試行するコンパイラによって一般的に使用されます。

必要条件

:システム要件」を参照してください。

ヘッダー: Cor.h

ライブラリ: MsCorEE.dll でリソースとして使用されます

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目