Функция CompareAssemblyIdentityWithConfig

Сравнивает два идентификатора сборки, чтобы определить, являются ли они эквивалентными, после применения элементов политики переносимости из указанного файла конфигурации.

STDAPI CompareAssemblyIdentityWithConfig (
    [in]  LPCWSTR                  pwzAssemblyIdentity1,
    [in]  BOOL                     fUnified1,
    [in]  LPCWSTR                  pwzAssemblyIdentity2,
    [in]  BOOL                     fUnified2,
    [in]  struct AssemblyConfig    *pAssemblyConfig,
    [out] BOOL                     *pfEquivalent,
    [out] AssemblyComparisonResult *pResult
 );

Параметры

  • pwzAssemblyIdentity1
    [in] Текстовый идентификатор первой сравниваемой сборки.

  • fUnified1
    [in] Логический флаг, обозначающий указанную пользователем унификацию для параметра pwzAssemblyIdentity1.

  • pwzAssemblyIdentity2
    [in] Текстовый идентификатор второй сравниваемой сборки.

  • fUnified2
    [in] Логический флаг, обозначающий указанную пользователем унификацию для параметра pwzAssemblyIdentity2.

  • pAssemblyConfig
    [in] Конфигурационный файл, содержащий информацию, которая влияет на политику переносимости, такую как элемент <supportPortability>.

  • pfEquivalent
    [out] Логический флаг, указывающий, равны ли две сборки.

  • pResult
    [out] Значение AssemblyComparisonResult, содержащее подробные сведения о сравнении.

Возвращаемое значение

pfEquivalent возвращает логическое значение, указывающее, равны ли две сборки. pResult возвращает одно из значений AssemblyComparisonResult, чтобы дать более подробную причину для значения pfEquivalent.

Заметки

CompareAssemblyIdentityWithConfig проверяет эквивалентность pwzAssemblyIdentity1 и pwzAssemblyIdentity2. pfEquivalent имеет значение true, если одно или несколько из следующих условий выполняется после применения каких-либо элементов в pAssemblyConfig , влияющих на политику переносимости:

  • Идентификаторы двух сборок эквивалентны. Для эквивалентности строго именованных сборок требуется равенство имен, версий, маркеров открытых ключей, а также языков и региональных параметров сборки. Для эквивалентности сборок с простыми именами требуется равенство имен, а также языков и региональных параметров сборки.

  • Оба идентификатора сборки ссылаются на сборки, выполняемые в .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.

Требования

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

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

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

Версии платформы .NET Framework: 4

См. также

Ссылки

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

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

Функция CompareAssemblyIdentity

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

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

Журнал изменений

Дата

Журнал

Причина

Май 2011

Исправлены ошибки в первоначальной документации.

Обратная связь от клиента.

Март 2011

Добавлена недостающая документация API.

Исправление ошибки содержимого.