Как обновить определенные файлы с помощью установки msi

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

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

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

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

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


person redjackwong    schedule 17.02.2009    source источник


Ответы (2)


MSI имеет специальную логику замены файлов (Архивная ссылка< /а>).

Я хотел бы сделать основное обновление.

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

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

person Rob McCready    schedule 18.02.2009

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

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

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

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

person saschabeaumont    schedule 18.02.2009
comment
Отличное предложение! Спасибо. Но эти вопросы основаны на существующей устаревшей системе, которая не была разработана таким образом. Все равно спасибо. - person redjackwong; 19.02.2009