CompareAssemblyIdentity 函数
比较两个程序集标识以确定它们是否等效。
语法
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
标志指示所有版本号(最高为强名称程序集的版本号)都被视为等效于强名称程序集。 例如,如果 pwzAssemblyIdentity1
的值为“MyAssembly, version=3.0.0.0, culture=neutral, publicKeyToken=....”,并且 fUnified1
的值为 true
,则指示从版本 0.0.0.0 到 3.0.0.0 的所有 MyAssembly 版本都应视为等效版本。 在这种情况下,如果 pwzAssemblyIdentity2
引用的程序集与 pwzAssemblyIdentity1
相同,但版本号较低,则 pfEquivalent
设置为 true
。 如果 pwzAssemblyIdentity2
引用更高的版本号,则仅在 fUnified2
的值为 true
时 pfEquivalent
才设置为 true
。
pResult
参数包含有关为什么两个程序集被视为等效或不等效的具体信息。 有关详细信息,请参阅 AssemblyComparisonResult 枚举。
要求
平台:请参阅系统要求。
标头:Fusion.h
库:作为资源包含在 MsCorEE.dll 中
.NET Framework 版本:自 2.0 起可用