Применение атрибутов, зависящих от версии
Если используется версия .NET Framework 1.1 или более поздней версии, для правильной активации типов, внесенных в реестр Windows, можно применять атрибуты времени разработки к управляемому исходному коду. В этом разделе описывается, когда применять атрибуты ComCompatibleVersionAttribute и TypeLibVersionAttribute.
Создаваемые илификсированные GUID
Программа экспорта библиотеки типов (Tlbexp.exe) и программа регистрации сборок (Regasm.exe) с параметром /tlb создают идентификаторы классов (CLSID), используя номер версии сборки, экспортированной для использования COM-приложением. Каждая новая версия экспортируемой сборки содержит уникальные для этой версии сборки значения CLSID. COM-приложение использует значение CLSID для определения класса при вызове метода CoCreateInstance.
Эта возможность пригодится, если новая версия сборки несовместима с предыдущими версиями. Например, старые версии несовместимы с новыми, если из новой сборки удалены один или несколько типов.
Примечание |
---|
В отличие от значений 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-компоненты и параллельное выполнение