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

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 起可用

请参阅