CompareAssemblyIdentityWithConfig Function
Updated: May 2011
Compares two assembly identities to determine whether they are equivalent after applying portability policy elements from a specified configuration file.
STDAPI CompareAssemblyIdentityWithConfig (
[in] LPCWSTR pwzAssemblyIdentity1,
[in] BOOL fUnified1,
[in] LPCWSTR pwzAssemblyIdentity2,
[in] BOOL fUnified2,
[in] struct AssemblyConfig *pAssemblyConfig,
[out] BOOL *pfEquivalent,
[out] AssemblyComparisonResult *pResult
);
Parameters
pwzAssemblyIdentity1
[in] The textual identity of the first assembly in the comparison.fUnified1
[in] A Boolean flag that indicates user-specified unification for pwzAssemblyIdentity1.pwzAssemblyIdentity2
[in] The textual identity of the second assembly in the comparison.fUnified2
[in] A Boolean flag that indicates user-specified unification for pwzAssemblyIdentity2.pAssemblyConfig
[in] A configuration file that contains information that affects portability policy, such as the <supportPortability> element.pfEquivalent
[out] A Boolean flag that indicates whether the two assemblies are equivalent.pResult
[out] An AssemblyComparisonResult value that contains detailed information about the comparison.
Return Value
pfEquivalent returns a Boolean value that indicates whether the two assemblies are equivalent. pResult returns one of the AssemblyComparisonResult values, to give a more detailed reason for the value of pfEquivalent.
Remarks
CompareAssemblyIdentityWithConfig checks whether pwzAssemblyIdentity1 and pwzAssemblyIdentity2 are equivalent. pfEquivalent is set to true if one or more of the following conditions are true after the application of any elements in pAssemblyConfig that affect portability policy:
The two assembly identities are equivalent. For strongly named assemblies, equivalency requires the assembly name, version, public key token, and culture to be identical. For simply named assemblies, equivalency requires a match on the assembly name and culture.
Both assembly identities refer to assemblies that run on the .NET Framework. This condition returns true even if the assembly version numbers do not match.
The two assemblies are not managed assemblies, but fUnified1 or fUnified2 was set to true.
The fUnified flag indicates that all version numbers up to the version number of the strongly named assembly are considered equivalent to the strongly named assembly. For example, if the value of pwzAssemblyIndentity1 is "MyAssembly, version=3.0.0.0, culture=neutral, publicKeyToken=....", and the value of fUnified1 is true, this indicates that all versions of MyAssembly from version 0.0.0.0 to 3.0.0.0 should be treated as equivalent. In such a case, if pwzAssemblyIndentity2 refers to the same assembly as pwzAssemblyIndentity1, except that it has a lower version number, pfEquivalent is set to true. If pwzAssemblyIdentity2 refers to a higher version number, pfEquivalent is set to true only if the value of fUnified2 is true.
The pResult parameter includes specific information about why the two assemblies are considered equivalent or not equivalent. For more information, see the AssemblyComparisonResult enumeration.
Requirements
Platforms: See .NET Framework System Requirements.
Header: Fusion.h
Library: Included as a resource in MsCorEE.dll
.NET Framework Versions: 4
See Also
Reference
AssemblyComparisonResult Enumeration
Shfusion.dll (Assembly Cache Viewer)
CompareAssemblyIdentity Function
Other Resources
Fusion Global Static Functions
Change History
Date |
History |
Reason |
---|---|---|
May 2011 |
Corrected errors in initial documentation. |
Customer feedback. |
March 2011 |
Added missing API documentation. |
Content bug fix. |