Переустановка компонента или приложения
Установщик Windows может восстанавливать, заменять и проверять файлы, содержащиеся в приложении. Может потребоваться частичная или полная переустановка приложения, если какие-либо файлы или записи реестра, связанные с какой-либо функцией, отсутствуют или повреждены.
При переустановке компонента или приложения также переустановляются все службы, переменные среды и пользовательские действия, принадлежащие компоненту или приложению. Обратите внимание, что это означает, что все изменения, внесенные в переменные среды между исходной установкой и переустановкой, будут потеряны.
В следующем списке приведены методы переустановки компонента или продукта. Первые два метода были автоматизированы установщиком:
- Восстановите, замените или проверьте файлы, вызвав функцию MsiReinstallFeature .
- Переустановите весь продукт, вызвав функцию MsiReinstallProduct .
- Переустановите, замените или проверьте файлы с помощью кнопки элемента управления пользовательского интерфейса установщика с помощью функции переустановки ControlEvent.
- Переустановите, замените или проверьте файлы из командной строки, задав свойства REINSTALL и REINSTALLMODE .
Дополнительные сведения о переустановке компонента или приложения см. в разделе Устойчивость.
Переустановка продукта с помощью установщика
- Вызовите MsiReinstallProduct.
Переустановка компонента с помощью установщика
- Вызовите MsiReinstallFeature.
Переустановка продукта или компонента с помощью пользовательского интерфейса установщика
Добавьте кнопку в указанное диалоговое окно, добавив запись в таблицу Control.
Добавьте в таблицу ControlEvent свойство ReinstallMode ControlEvent с полями Dialog_ и Control_, ссылающимися на элемент управления "Кнопка", созданный на шаге 1. В поле Аргумент введите строку, содержащую буквы, соответствующие нужным режимам переустановки (допустимые значения для этого поля идентичны допустимым для свойства REINSTALLMODE ). Значение в столбце Упорядочивание для этого события должно быть равно 1.
Добавьте событие Переустановить ControlEvent в таблицу ControlEvent, снова ссылаясь на тот же элемент управления "Кнопка". Поле Аргумент для этого события обычно будет иметь значение ALL, чтобы принудительная переустановка всех компонентов, но вы можете указать имя конкретного компонента здесь. Значение в столбце Упорядочивание для этого события должно быть равно 2.
Добавьте еще одно событие, привязанное к тому же элементу управления "Кнопка", чтобы фактически инициировать переустановку. Это может быть событие EndDialog (с аргументом Return). Однако обычно здесь используется событие NewDialog для перехода к диалоговому окку подтверждения Вы действительно хотите переустановить? . Значение в столбце Упорядочивание для этого события должно быть равно 3.
При необходимости можно создать несколько кнопок ПЕРЕУСТАНОВИТЬ для одного диалогового окна, что позволит пользователю выбрать тип выполняемой переустановки. В этом случае каждая кнопка создается, как описано в предыдущей процедуре, с другим параметром ReinstallMode ControlEvent для каждой кнопки.
После установки определенного продукта (с некоторыми или всеми компонентами продукта) можно выполнить переустановку в командной строке:
Переустановка продукта или компонента из командной строки
В командной строке укажите свойство REINSTALL .
В командной строке укажите свойство REINSTALLMODE .
Если указать эти свойства, пользователь может переустановить все компоненты продукта. Также можно указать тип переустановки. Например, можно указать, что следует переустановить только те файлы, которые полностью отсутствуют, или заменить только поврежденные файлы (например, любой исполняемый файл, контрольная сумма которого не соответствует фактическому содержимому файла).