Установка сборок Win32 для частного использования приложения в Windows XP
В этой статье описывается, как создать пакет установщика Windows для установки сборки Win32. Пакет устанавливает сборку и файл манифеста приложения в созданную папку, которую использует приложение. Манифест приложения указывает зависимость приложения от частной сборки. После установки пакета частная сборка доступна для монопольного использования приложения. Зависимость сборки, указанная в манифесте приложения, переопределяет (для этого приложения) любые другие глобальные зависимости сборки, указанные в файлах манифеста сборки.
Прежде чем продолжить, рекомендуется понять, как создать пакет установщика Windows без сборок. Дополнительные сведения см . в разделе "Пример установки".
Установка частной сборки в Windows XP
- Определите компонент установщика Windows, включающий сборку Win32 и файл манифеста приложения. Этот компонент может содержать другие ресурсы, которые всегда должны быть установлены или удалены вместе со сборкой. В остальных шагах этой процедуры описывается, как создать базу данных установки для установки этого компонента.
- Добавьте строку в таблицу component для компонента, содержащего сборку Win32 и файл манифеста приложения. Введите допустимый guid установщика Windows для этого кода компонента. Дополнительные сведения см. в разделе "Изменение кода компонента " и "Что произойдет, если правила компонентов нарушены?"
- Установщик копирует файл манифеста сборки в папку, содержащую файл, указанный в поле File_Application таблицы MsiAssembly.
- Добавьте строку в таблицу FeatureComponents, которая привязывает компонент к компоненту установщика Windows. Дополнительные сведения см. в разделе "Компоненты и компоненты". Компонент установщика Windows должен быть частью функциональных возможностей приложения, которые пользователь может распознать. Сборка активируется при выборе этой функции пользователем или сбое приложения. Если сборка определяет дополнительную функцию, добавьте дополнительную строку в таблицу компонентов для атрибутов компонента. Этот шаг не требуется, если создается модуль слияния.
- Для параллельных сборок, сведений о привязке и активации, например com-классах, интерфейсах и библиотеках типов, хранятся в файлах манифеста, а не в реестре. Частные сборки хранят эти сведения в манифесте сборки. В системах, поддерживающих параллельные сборки, установщик пропускает обработку любых сведений о компоненте, введенном в таблице расширения, таблице Verb, таблице TypeLib, таблице MIME, таблице класса, таблице ProgId и таблице AppId. Сведения о привязке и активации можно вводить в таблицы для использования системами, которые не поддерживают параллельный общий доступ к сборкам.
- Параллельная установка не регистрирует сборку глобально. Установщик пропускает самостоятельную регистрацию компонента, если в таблицу SelfReg вводятся какие-либо сведения о саморегистрированной регистрации. Сведения о самостоятельной регистрации можно ввести в таблицу SelfReg для самостоятельной регистрации компонента в системах, которые не поддерживают параллельный общий доступ к сборкам.
- Добавьте любые другие сведения реестра, исключающие привязку и активацию или самостоятельную регистрацию компонента, в таблицу реестра, таблицу RemoveRegistry и таблицу Среды.
- Установщик пропускает таблицу IsolatedComponent для этого компонента в операционных системах, поддерживающих параллельный общий доступ. Введите сведения в эту таблицу, если требуется, чтобы сборка была частной в системах, поддерживающих локальные файлы.
- Добавьте строку в таблицу MsiAssembly для компонента, содержащего сборку Win32. Введите значение 1 в поле "Атрибуты" таблицы MsiAssembly, чтобы указать, что это сборка Win32. Введите ключ файла частной сборки в поле File_Application таблицы MsiAssembly. Добавьте действие MsiPublishAssemblies в таблицу InstallExecuteSequence или таблицу AdvtExecuteSequence. Добавьте действие MsiUnpublishAssemblies в таблицу InstallExecuteSequence. Создайте папку для сборки и файла манифеста в таблице каталогов. Эта папка должна находиться в корневом каталоге приложения и содержать файл, указанный в поле File_Application таблицы MsiAssembly. Во время установки приложения установщик разрешает таблицу каталогов для пути к этой папке. Дополнительные сведения см. в разделе "Использование таблицы каталогов".
- Добавьте строки в таблицу MsiAssemblyName для компонента. Добавьте по одной строке для каждой пары имен и значений, указанной в разделе assemblyIdentity манифеста. Дополнительные сведения см. в таблице MsiAssemblyName.