Как обновить определенные файлы с помощью установки MSI - PullRequest
1 голос
/ 17 февраля 2009

Я хочу сделать установку, которая может быть как новой, так и обновленной установкой. Когда он использовался для установки обновлений, я хочу, чтобы некоторые файлы обновлялись независимо от версии и даты / времени. И некоторые файлы никогда не будут обновлены.

Что я пробовал: Установите «REINSTALLMODE» в «amus». И установите для свойства «Никогда не перезаписывать» компонентов никогда не обновляемых файлов значение «Да».

Что я получаю: Не работает Компоненты с надписью «Никогда не перезаписывать = да» по-прежнему обновляются.

Мой вопрос: Это правильно? REINSTALLMODE имеет более высокий приоритет, чем свойство компонента «Никогда не перезаписывать»? Как решить эту проблему с частичными обновлениями?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 19 февраля 2009

MSI имеет специфическую логику замены файлов .

Я бы хотел провести серьезное обновление .

Предполагая, что это неверсионные файлы (например, файлы конфигурации text / xml, а не сборки), я бы вручную установил версию файла для любого файла, который я хотел всегда обновлять (установленная вручную версия переопределит то, что уже установлено), и оставьте в покое другие, которые логика замены файлов должна игнорировать.

Вот документ о REINSTALLMODE = amus , в котором упоминается «a», означает игнорировать правила управления версиями файлов и обновлять все. не то, что вы хотите. Кроме того, я считаю, что REINSTALLMODE обычно предназначен для операций «ремонта», а не для установки / обновления в любом случае.

0 голосов
/ 19 февраля 2009

Мы делаем что-то вроде этого ...

  1. Установка файлов в программные файлы
  2. Установить настройки по умолчанию для всех пользователей appdata
  3. Скопировать конфигурацию по умолчанию в пользовательские приложения, если пользовательская конфигурация не найдена.

Это означает, что если применяется обновление, конфигурация по умолчанию сбрасывается, а конфигурация для каждого пользователя - нет. Все настройки и т. Д. Сохраняются и не перезаписываются при обновлении MSI.

В зависимости от того, какие файлы вы пытаетесь «не обновить», я подозреваю, что вы, вероятно, можете сделать что-то похожее.

...