比较两个程序集标识以确定它们是否等效。
STDAPI CompareAssemblyIdentity (
[in] LPCWSTR pwzAssemblyIdentity1,
[in] BOOL fUnified1,
[in] LPCWSTR pwzAssemblyIdentity2,
[in] BOOL fUnified2,
[out] BOOL *pfEquivalent,
[out] AssemblyComparisonResult *pResult
);
参数
pwzAssemblyIdentity1
[in] 该比较中第一个程序集的文本标识。fUnified1
[in] 一个布尔型标志,指示 pwzAssemblyIdentity1 的用户指定一致性。pwzAssemblyIdentity2
[in] 该比较中第二个程序集的文本标识。fUnified2
[in] 一个布尔型标志,指示 pwzAssemblyIdentity2 的用户指定一致性。pfEquivalent
[out] 一个布尔型标志,指示这两个程序集是否等效。pResult
[out] 一个 AssemblyComparisonResult 枚举,包含有关该比较的详细信息。
返回值
pfEquivalent 返回一个布尔值,指示这两个程序集是否等效。 pResult 返回其中一个 AssemblyComparisonResult 值,以便为 pfEquivalent 值提供较详细的原因。
备注
CompareAssemblyIdentity 检查 pwzAssemblyIdentity1 和 pwzAssemblyIdentity2 是否等效。 在以下一个或多个条件下,将 pfEquivalent 设置为 true:
这两个程序集标识等效。 对于具有强名称的程序集,等效性要求程序集名称、版本、公钥标记和区域性均应相同。 对于具有简单名称的程序集,等效性要求程序集名称与区域性匹配。
这两个程序集标识均指在 .NET Framework 上运行的程序集。 即使程序集版本号不匹配,此条件也会返回 true。
虽然这两个程序集不是托管程序集,但是将 fUnified1 或 fUnified2 设置为 true。
fUnified 标志指示直至强名称程序集版本号的所有版本号均被视为与强名称程序集等效。 例如,如果 pwzAssemblyIndentity1 的值为“MyAssembly, version=3.0.0.0, culture=neutral, publicKeyToken=....”,并且 fUnified1 的值为 true,则表示从版本 0.0.0.0 至 3.0.0.0 的所有 MyAssembly 版本都应被视为等效。 在此情况下,如果 pwzAssemblyIndentity2 除了版本号较低之外,指的就是与 pwzAssemblyIndentity1 相同的程序集,则将 pfEquivalent 设置为 true。 如果 pwzAssemblyIdentity2 指的是较高的版本号,则仅当 fUnified2 的值为 true 时,才会将 pfEquivalent 设置为 true。
pResult 参数包括以下特定信息:为什么将这两个程序集视为等效或视为不等效。 有关更多信息,请参见 AssemblyComparisonResult 枚举。
调用此函数与调用 CompareAssembyIdentityWithConfig function 并为 pAssemblyConfig 参数传递 NULL 等效。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**Fusion.h
**库:**作为一项资源包含在 MsCorEE.dll 中
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0