Удаляемые исправления

Возможность удаления исправления зависит от того, как было создано исправление, от версии установщика Windows, используемой для установки исправления, и от изменений, внесенных исправлением в приложение. Если исправление невозможно удалить, единственным способом удаления исправления является удаление всего приложения и переустановка без применения исправления.

Вы можете вызвать для удаления исправлений, примененных с установщиком Windows версии 3.0, с помощью параметров командной строки, функции MsiRemovePatches или метода RemovePatches , как описано в разделе Удаление исправлений . Установщик Windows проверяет, что все исправления, перечисленные для удаления в свойстве MSIPATCHREMOVE , являются удаляемыми. Если у пользователя нет прав на удаление исправления, исправление неизвестно для продукта, политика исправлений предотвращает удаление или исправление было отмечено как не удаляемое, установщик возвращает ошибку, указывающую на сбой транзакции установки.

Установщик Windows 2.0: Не поддерживается. Исправления, примененные с помощью версии установщика Windows, более ранней, чем установщик Windows 3.0, не могут быть удалены.

Исправления, которые нельзя удалить

Исправление (MSP-файл), примененное к установленному приложению, невозможно удалить в следующих случаях. Единственный способ удалить исправление, которое невозможно удалить, — удалить исправленное приложение, а затем переустановить приложение без повторного применения исправления. В этом случае необходимо повторно применить все исправления, которые вы не хотите удалять из приложения.

  • Исправления, примененные с помощью версии установщика Windows, которая меньше установщика Windows 3.0, не могут быть удалены.

  • Исправления, применяемые к приложениям, установленным на компьютере с политикой DisablePatchUninstall , настроенной администратором, не могут быть удалены. Если эта политика компьютеразадана, никакие исправления на компьютере не могут быть удалены даже администратором.

  • Исправления, у которых нет таблицы MsiPatchMetadata в базе данных, не могут быть удалены.

  • Исправления, которые не содержат следующую строку в таблице MsiPatchMetadata , не могут быть удалены. Исправление невозможно удалить для других значений Company, Property и Value.

    Company Свойство Значение
    {Null} AllowRemoval 1

     

  • Исправление было применено к приложению, установленному в контексте, для которого у пользователя недостаточно прав для удаления исправлений. Слова "Не разрешено" в следующей таблице указывают, что администратор или пользователь без прав администратора не может удалять исправления из приложений с исправлениями, установленных в этом контексте. Слово "Разрешено" в этой таблице означает, что привилегии не препятствуют администратору или пользователю без прав администратора удалять исправления, однако по любой из других причин, описанных в этом разделе, по-прежнему может быть невозможно удалить исправление.

    Контекст установки приложения Удаление исправления администратором Удаление исправления без прав администратора
    Per-Machine Разрешено Как правило, не разрешено. Единственное исключение заключается в том, что исправление было применено с помощью исправлений (LUA). Исправление, помеченное как исправление LUA, может быть удалено администраторами или не администраторами. Исправление LUA доступно только для пакетов, устанавливаемых на каждом компьютере с носителя и требующих специальной разработки.
    Per-User неуправляемый для текущего пользователя Разрешено Разрешено
    Per-User неуправляемый для другого пользователя Не разрешено Не разрешено
    управление Per-User для текущего пользователя Разрешено Не разрешено
    управление Per-User для другого пользователя Не разрешено Не разрешено

     

  • Основное обновление, примененное исправлением, не может быть удалено. Основные обновления приложения должны выполняться путем установки обновленного приложения (.msi файла), а не исправления.

  • Исправления, примененные к административной установке, не могут быть удалены. Установка исправлений для административных установок не рекомендуется. Текущий набор исправлений должен быть применен к компьютеру пользователя после того, как пользователь установит приложение из административного образа. Это может предотвратить, что код пакета , кэшированный на компьютере пользователя, не будет отличаться от кода пакета в административной установке. Если код пакета, кэшированный на компьютере пользователя, отличается от кода в административной установке, переустановите приложение из административной установки, а затем исправьте клиентский компьютер.

  • Когда исправление добавляет новое содержимое в любую из таблиц в следующем списке, установщик Windows помечает это исправление как недоступное для удаления. Удаляемое исправление может добавлять новые файлы, сборки, записи реестра, компоненты или компоненты в установку, добавляя новые строки в таблицы базы данных, которые не включены в этот список.

Секвенирование исправлений

Удаление исправлений

Удаление исправлений

Исправление удаления пользовательских действий

MSIPATCHREMOVE

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MsiRemovePatches