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 检查 pwzAssemblyIdentity1pwzAssemblyIdentity2 是否等效。 pfEquivalent 在下列一个或多个条件下设置为 true

  • 这两个程序集标识是等效的。 对于强名称程序集,等效性要求程序集名称、版本、公钥标记和区域性相同。 对于简单名称程序集,等效性要求程序集名称和区域性匹配。

  • 这两个程序集标识都是指在 .NET Framework 上运行的程序集。 即使程序集版本号不匹配,此条件也返回 true

  • 这两个程序集不是托管程序集,但 fUnified1fUnified2 已设置为 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 的值为 truepfEquivalent 才设置为 true

pResult 参数包含有关为什么两个程序集被视为等效或不等效的具体信息。 有关详细信息,请参阅 AssemblyComparisonResult 枚举

要求

平台:请参阅系统要求

标头:Fusion.h

库:作为资源包含在 MsCorEE.dll 中

.NET Framework 版本:自 2.0 起可用

请参阅