Управление компонентами
Единицы задач в установщике Windows называются компонентами установщика Windows (иногда называются WICs или просто компонентами). Идентификатор GUID определяет каждый WIC, который является базовой единицей установки и подсчета ссылок для установок, использующих установщик Windows.
Хотя для создания установщика VSPackage можно использовать несколько продуктов, в этом обсуждении предполагается использование файлов установщика Windows (MSI). При создании установщика необходимо правильно управлять развертыванием файлов, чтобы правильное подсчет ссылок происходило в любое время. Следовательно, разные версии вашего продукта не будут вмешиваться или прерывать друг друга в сочетании сценариев установки и удаления.
В установщике Windows количество ссылок происходит на уровне компонента. Необходимо тщательно упорядочить ресурсы — файлы, записи реестра и т. д. в компоненты. Существуют другие уровни организации, такие как модули, функции и продукты, которые могут помочь в различных сценариях. Дополнительные сведения см. в разделе "Основы установщика Windows".
Рекомендации по настройке разработки для параллельной установки
Создание файлов и разделов реестра, совместно используемых между версиями в собственных компонентах.
Это позволяет легко использовать их в следующей версии. Например, библиотеки типов, зарегистрированные глобально, расширения файлов, другие элементы, зарегистрированные в HKEY_CLASSES_ROOT, и т. д.
Группировать общие компоненты в отдельные модули слияния.
Эта стратегия помогает правильно создавать параллельные установки.
Установите общие файлы и разделы реестра с помощью одних и того же компонента установщика Windows в разных версиях.
Если вы используете другой компонент, файлы и записи реестра удаляются при удалении одного из версий VSPackage, но другой VSPackage по-прежнему установлен.
Не смешивайте версии и общие элементы в одном компоненте.
Это делает невозможным установить общие элементы в глобальное расположение и элементы с версиями в изолированные расположения.
Не имеют общих разделов реестра, указывающих на версии файлов.
Если это сделать, общие ключи будут перезаписаны при установке другого пакета VSPackage с версией. После удаления второй версии файл, на который указывает ключ, исчезает.