Простите за длинный ответ, но я думаю, что очень важно, чтобы вы поняли основы:
ли вы изменить код продукта между версиями 2 MSI? Я предполагаю, что вы не изменили код продукта между двумя версиями, и установщик Windows рассматривает как незначительное обновление. Сначала понять разницу между майором и малой модификацией.
Minor Upgrade
Незначительное обновление является обновление, которое вносит изменения на ресурсы. Ни одно из изменений не может потребовать изменения ProductCode. Для обновления требуется серьезное обновление для изменения ProductCode . Небольшое обновление может быть использовано для добавления новых функций и компонентов, но не может реорганизовать дерево компонентных компонентов. Небольшие обновления обеспечивают дифференциацию продукта без фактического определения другого продукта. Типичное незначительное обновление включает все исправления в предыдущих небольших обновлениях, объединенных в патч. Небольшое обновление также обычно составляет , называемое обновлением пакета обновления (SP).
Major Upgrade
крупного обновление представляет собой комплексное обновление продукта, который нуждается в изменении ProductCode собственности. Типичное крупное обновление удаляет предыдущую версию приложения и устанавливает новую версию. Основное обновление может реорганизовать дерево компонентов компонента. Во время крупного обновления с помощью установщика Windows установщик выполняет поиск на компьютере пользователя для приложений, связанных с ожидающим обновлением, и когда он обнаруживает один, он извлекает версию установленного приложения из системного реестра. Затем установщик использует информацию в базе данных обновления, чтобы определить, следует ли обновлять установленное приложение.
В настоящее время во время выполнения обновления для малых версий установщик Windows использует следующие правила для замены существующих файлов. Поскольку ненужное копирование файлов замедляет установку, установщик Windows определяет, установлен ли файл ключа компонента до того, как вы установили файлы любого компонента. Если установщик находит файл с тем же именем, что и файл ключа компонента, установленный в целевом местоположении, он сравнивает версию, дату, и язык двух ключевых файлов и использует правила управления версиями файлов, чтобы определить, следует ли устанавливать компонент, предоставленный пакет. Если установщик определяет, что он должен заменить базу компонентов на файл ключа, то он использует правила управления версиями файлов для каждого установленного файла, чтобы определить, следует ли заменять файл.
В основе любого установщика лежит фактическая установка файлов. Определение того, нужно ли устанавливать файл, - сложный процесс. На самом высоком уровне это определение зависит от того, помечен ли компонент, к которому принадлежит файл, для установки. После определения того, что файл должен быть скопирован, процесс сложный, если в целевой папке существует другой файл с тем же именем . В таких ситуациях, что делает определение требует набора правил, связанных с следующими свойствами:
- Версия
- Дата
- Язык
Установщик только использует эти правила при попытке установить файл к местоположению, которое уже содержит файл с тем же именем. В этом случае установщик Windows использует следующие правила, при прочих равных условиях, чтобы определить, следует ли устанавливать.
Наивысшая версия выигрышей. При прочих равных условиях побеждает файл с наивысшей версией, даже если файл на компьютере имеет самую высокую версию.
Файлы с версией Win-A версированный файл устанавливается поверх неверсифицированного файла.
Язык продукта с поддержкой продукта. Если установленный файл имеет другой язык, отличный от файла на компьютере, пользуется файлом с языком, который соответствует установленному продукту . Файлы, нейтральные для языка, рассматриваются как еще один язык, поэтому обновляемый продукт снова используется.
Несоответствие нескольким языкам. После разложения любых распространенных языков между установленным файлом и файлом на компьютере любые оставшиеся языки предпочитаются в соответствии с тем, что требуется установленному продукту.
Preserve Superset Languages - сохранить файл, поддерживающий несколько языков, независимо от того, установлен ли он на компьютере или устанавливается.
Неверсированные файлы являются данными пользователя. Если измененная дата позже даты создания файла на компьютере, не устанавливайте файл, потому что пользовательские настройки будут удалены . Если даты изменения и создания совпадают, установите файл. Если дата Создать позже Модифицированной даты, файл считается немодифицированным, установите файл.
Во время Малой модернизации правила по умолчанию для версий файлов могут быть переопределены или изменены с помощью свойства REINSTALLMODE. Установщик использует правила управления версиями файлов, заданные свойством REALSTALLMODE при установке, переустановке или восстановлении файла. Значением по умолчанию свойства REINSTALLMODE является «omus».
Теперь вам нужно решить, будете ли вы выполнять MinorUpgrade или Major Upgrade для своего MSI. Если это крупное обновление, то по умолчанию старая версия продукта удаляется перед установкой новой версии. Используйте ссылку «WIX MAJOR UPGRADE» ниже для получения более подробной информации о том, как это реализовать. Вы также можете установить свойство в пределах MajorUpgrade Элемент - чтобы вы могли установить старую версию поверх новой версии.
AllowDowngrades YesNoType When set to no (the default), products with lower version numbers are blocked from installing when a product with a higher version is installed;
the DowngradeErrorMessage attribute must also be specified. When set to yes, any version can be installed over any other version.
Если вы прилипание к незначительному обновлению то, что вам нужно будет переопределить правила по умолчанию файл контроля версий, используя свойство REINSTALLMODE, как упоминалось выше, и использовать код «D»
d Reinstall if the file is missing or a different version is present.
Затем используйте следующая Msiexec команда:
msiexec.exe /i installer.msi REINSTALL=ALL REINSTALLMODE=vdmus
- MINOR UPGRADE
- MAJOR UPGRADE
- MINOR UPGRADE - Replace Existing Rules
- MINOR UPGRADE - File Versioning Rules
- REINSTALLMODE
- WIX MAJOR UPGRADE
Надежда, что помогает!
Как уже упоминалось в моем ответе, вы установили свойство AllowDowngrades и проверили его? – Isaiah4110
Если это ответили на ваш вопрос/помогли вам, отметьте его как ответ. – Isaiah4110
Можете ли вы, пожалуйста, дайте мне знать, где добавить «AllowDowngrades» в wix. –