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