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]要在其中搜索给定程序集的根目录。 如果此值设置为 nullFindAssembliesByName 则只会在程序集的全局程序集缓存中查找。

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