Обновление сборок
В этой статье приведены рекомендации по обновлению сборок с помощью исправлений установщика Windows.
Авторы обновлений сборок могут использовать следующие рекомендации, которые применяются ко всем типам сборок:
- Для обновления сборки рекомендуется изменить строгое имя сборки в таблице MsiAssemblyName. Новая версия сборки может быть предоставлена новым компонентом или тем же компонентом, который предоставляет старую версию.
- Если новая версия сборки предоставляется тем же компонентом, не изменяйте тип сборки с платформа .NET Framework на сборку Win32 или наоборот.
- Если все приложения в системе должны использовать обновленную сборку, следует развернуть сборку политики. Сборка политики может перенаправлять приложения в системе для использования новой версии сборки. Сборки политики должны быть предоставлены путем создания нового компонента.
- Для удаления обновлений сборок требуется установщик Windows 3.0 или более поздней версии. Дополнительные сведения см. в разделе Удаление исправлений.
- Более новая версия сборки должна содержать те же или более поздние версии файлов из ранее выпущенных сборок.
- Установщик Windows 3.0 может обслуживать сборки платформа .NET Framework и Win32 путем полной замены файлов или путем небольшого разностного обновления. Дополнительные сведения см. в разделе Уменьшение размера исправлений.
- Если обновление изменяет строгое имя сборки, требуются таблицы MsiPatchOldAssemblyFile и MsiPatchOldAssemblyName , если пакет исправлений не содержит таблицу MsiPatchSequence . Таблицы MsiPatchOldAssemblyFile и MsiPatchOldAssemblyName не требуются, если пакет исправлений содержит сведения о последовательности исправлений в таблице MsiPatchSequence.
- Перед выпуском нового исправления протестируйте его, применив его ко всем ранее выпущенным исправлениям.
Обновление сборок Win32
При обновлении сборок Win32 используйте следующие рекомендации:
- Измените строгое имя новой сборки, указанное в таблице MsiAssemblyName.
- Если вы хотите, чтобы приложение всегда использовало новую версию сборки, не влияя на версию сборки, используемую другими приложениями в системе, используйте тот же компонент, чтобы содержать новую версию сборки, которая использовалась для старой версии сборки. Сохраните тот же ComponentId в таблице Component . После установки исправлений приложение содержит только ссылку на новую версию сборки. Старая версия сборки может остаться с новой версией в глобальном кэше сборок. Это не влияет на другие приложения в системе, использующие старую версию сборки. Если один и тот же компонент используется для новой и старой версий сборки, обновление может быть небольшим разностным исправлением.
- Если новая версия сборки несовместима со всеми системами, в которые требуется установить приложение, можно установить новую и старую версии сборки как параллельные сборки. Чтобы установить обе версии сборки параллельно, создайте новый компонент, содержащий новую версию сборки. ComponentId в таблице Компонентов для нового компонента должен отличаться от ComponentId компонента со старой версией. После установки исправлений приложение содержит ссылки на обе версии сборки. Затем приложение может быть перенаправлено в совместимую версию сборки с помощью манифеста. Если для новой и старой версий сборки используются разные компоненты, обновление использует полную замену файлов.
Обновление сборок платформа .NET Framework
При обновлении сборок платформа .NET Framework используйте следующие рекомендации.
Измените строгое имя новой сборки, указанное в таблице MsiAssemblyName.
Если вы хотите, чтобы приложение всегда использовало новую версию сборки, не влияя на версию сборки, используемую другими приложениями в системе, измените строгое имя новой сборки, указанное в таблице MsiAssemblyName, и используйте тот же компонент, чтобы содержать новую версию сборки, которая использовалась для старой версии сборки. Сохраните тот же ComponentId в таблице Component . После установки исправлений приложение содержит только ссылку на новую версию сборки. Старая версия сборки может остаться с новой версией в глобальном кэше. Это не влияет на другие приложения в системе, использующие старую версию сборки. Если один и тот же компонент используется для новой и старой версий сборки, обновление может быть небольшим разностным исправлением.
Если новая версия сборки совместима со всеми системами, в которые требуется установить приложение, можно установить новую и старую версии сборки как параллельные сборки. Чтобы установить обе версии сборки параллельно, измените строгое имя новой сборки, указанной в таблице MsiAssemblyName, и создайте новый компонент, содержащий новую версию сборки. Значение ComponentId в таблице Component для нового компонента должно отличаться от ComponentId компонента со старой версией. После установки исправлений приложение содержит ссылки на обе версии сборки. Затем приложение может быть перенаправлено в совместимую версию сборки с помощью манифеста. Если для новой и старой версий сборки используются разные компоненты, обновление использует полную замену файлов.
Обновление на месте перезаписывает копию сборки платформа .NET Framework в глобальном кэше сборок. Этот тип обновления сборки не изменяет строгое имя сборки. Изменяется только значение в поле FileVersion таблицы MsiAssemblyName . Для обновления сборки платформа .NET Framework на месте требуется платформа .NET Framework 1.1 с пакетом обновления 1 (SP1) или более поздней версии.
Примечание
Тип обновления на месте перезаписывает копию сборки в глобальном кэше и может нарушить другие приложения, если новая версия сборки не полностью совместима с обратной совместимостью. Для обновления сборки рекомендуется изменить строгое имя сборки в таблице MsiAssemblyName.