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
[in] 要向其中放置 IMetadataAssemblyImport 接口指针的 IUnknown 类型的数组。cMax
[out] 可以在 ppIUnk 中放置的接口指针的最大数目。pcAssemblies
[out] 返回的接口指针数。 即,在 ppIUnk 中实际放置的接口指针数。
返回值
HRESULT |
说明 |
---|---|
S_OK |
FindAssembliesByName 已成功返回。 |
S_FALSE |
没有程序集。 |
备注
在给定程序集名称的情况下,FindAssembliesByName 方法将按照解析程序集引用的标准规则来查找该程序集 (有关更多信息,请参见 运行时如何定位程序集)。FindAssembliesByName 允许调用方配置程序集解析程序上下文的各个方面,例如应用程序基和专用搜索路径。
FindAssembliesByName 方法要求在进程中初始化 CLR,因为只有这样才能调用程序集解析逻辑。 因此,必须先调用 CoInitializeEE(传递 COINITEE_DEFAULT),再调用 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