Функция 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 указывает, что все номера версий вплоть до номера версии строго именованной сборки, считаются эквивалентными строго именованной сборке. Например, если значение параметра pwzAssemblyIndentity1 равно "MyAssembly, version=3.0.0.0, culture=neutral, publicKeyToken=....", а значение fUnified1 равно true, это свидетельствует о том, что все версии сборки MyAssembly от 0.0.0.0 до 3.0.0.0 должны считаться эквивалентными. В этом случае, если параметр pwzAssemblyIndentity2 ссылается на ту же сборку, что и параметр pwzAssemblyIndentity1, за исключением того, что он обладает более низким номером версии, параметру pfEquivalent присваивается значение true. Если параметр pwzAssemblyIdentity2 ссылается на более высокий номер версии, параметру pfEquivalent присваивается значение true, только если значение параметра fUnified2 равно true.

В параметре pResult содержатся особые сведения о том, почему две сборки считаются или не считаются эквивалентными. Дополнительные сведения см. в разделе Перечисление AssemblyComparisonResult.

Вызов этой функции идентичен вызову функции CompareAssembyIdentityWithConfig с передачей значения NULL в качестве значения параметра pAssemblyConfig.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: Fusion.h

Библиотека: включена как ресурс в MsCorEE.dll

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0

См. также

Ссылки

Перечисление AssemblyComparisonResult

Shfusion.dll (программа просмотра кэша сборок)

Другие ресурсы

Глобальные статические функции Fusion

Функция CompareAssemblyIdentityWithConfig