Поделиться через


Применение атрибутов, зависящих от версии

Обновлен: Ноябрь 2007

Если используется версия .NET Framework 1.1 или более поздней версии, для правильной активации типов, внесенных в реестр Windows, можно применять атрибуты времени разработки к управляемому исходному коду. В этом разделе описывается, когда применять атрибуты ComCompatibleVersionAttribute и TypeLibVersionAttribute.

Сравнение созданных и фиксированных значений GUID

Программа экспорта библиотеки типов (Tlbexp.exe) и программа регистрации сборок (Regasm.exe) с параметром /tlb создают идентификаторы классов (CLSID), используя номер версии сборки, экспортированной для использования COM-приложением. Каждая новая версия экспортируемой сборки содержит уникальные для этой версии сборки значения CLSID. COM-приложение использует значение CLSID для определения класса при вызове метода CoCreateInstance.

Эта возможность пригодится, если новая версия сборки несовместима с предыдущими версиями. Например, старые версии несовместимы с новыми, если из новой сборки удалены один или несколько типов.

7ydsx43e.alert_note(ru-ru,VS.90).gifПримечание.

В отличие от значений CLSID программные идентификаторы (ProgID) не меняются с каждой новой версией сборки. Чтобы вручную изменить ProgID при создании новой, несовместимой сборки , следует использовать атрибут ProgIdAttribute.

Но многие сборки совместимы с более ранними версиями, а разработчики предполагают, что приложения будут использовать новейшую версию. Если значения CLSID для нескольких версий сборок одинаковы (это достигается путем использования фиксированных значений GUID), существующие COM-приложения могут использовать типы из новой версии сборки без использования старой сборки и повторной компиляции.

Если используется атрибут ComCompatibleVersionAttribute, все значения CLSID в текущей версии сборки будут совпадать со значениями CLSID более ранней версии. Дополнительные сведения о применении этого атрибута см. в справочной документации ComCompatibleVersionAttribute.

Версии библиотеки типов

Номер версии библиотеки типов содержит основной и дополнительный номера версии сборки, использованной для ее создания. Напротив, номер версии сборки состоит из четырех частей. При экспорте для использования COM-приложением две абсолютно разные версии сборки (1.0.0.0 и 1.2.500.0) автоматически создают различные версии библиотеки типов (1.0 и 1.2). Но более близкие версии (1.2.0.0 и 1.2.500.0) создают одинаковую версию библиотеки типов (1.2).

Атрибут TypeLibraryVersionAttribute позволяет в явном виде указать номер версии библиотеки типов в управляемом исходном коде. Дополнительные сведения об использовании этого атрибута см. в справочной документации TypeLibVersionAttribute.

См. также

Основные понятия

Инициализация среды выполнения из COM-приложения

Разделы реестра, зависящие от версии

Настройка COM-приложения для параллельного выполнения

COM-компоненты и параллельное выполнение

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

Параллельное выполнение для COM- взаимодействия