MSI переустановить проблему Windows7 - PullRequest
1 голос
/ 16 июня 2011

У меня есть 2 версии продукта «product1» (1.2.2.2 и 1.2.2.3).

Как для обновления, так и для понижения, продукт1 использует параметры MSI "reinstall = all reinstallmode = vamus", поэтому всегда новые файлы будут в каталоге установки.

Если я обновлюсь с версии 1.2.2.2до 1.2.2.3, не все новые файлы копируются в каталог установки.Я сталкиваюсь с этой проблемой только на Windows 7 (как x86, так и x64).Нет проблем с XP (как x86, так и x64).

Я сравнил логи на xp и win7.Я обнаружил следующее отличие.

XP: SetSourceFolder (Папка = 1 \ PROGRA ~ 1 \ company ~ 1 \ product ~ 1 \ drivers \ | программные файлы \ companyname \ productname \ drivers)

win7: Выполнение операции: SetSourceFolder (Папка = C: \ Windows \ Installer \ $ PatchCache $ \ Managed \ A7C0B53D545489A48A0183013BEF525E \ 1.2.2)

Это мои настройки.Наш продукт поддерживает как обновления, так и понижения.Чтобы максимально упростить работу с клиентами, мы выбираем «REINSTALL = All REINSTALLMODE = vamus», чтобы эти параметры поддерживали как обновление, так и понижение.Еще один важный момент: у этого MSI нет отдельной информации об обновлении или понижении производительности.У MSI были плоские компоненты.Все компоненты внутри MSI подписаны.Информация о версии также встроена.Мои вопросы 1) изменилось ли поведение установщика Windows на win7?2) установщик воспринимает только abc как информацию о версии?это будет игнорировать после этого?

Еще один важный момент: у этого MSI нет отдельной информации об обновлении или устаревании.У MSI были плоские компоненты.Параметры «REINSTALL = Все REINSTALLMODE = vamus» гарантируют, что всегда работающие компоненты версии MSI будут идти в каталог установки.Пока этот метод работает почти 5 лет.Только у win7 была проблема.

Чтобы воспроизвести эту проблему ... 1) установить 1.2.2.2 с помощью msiexec / i 1.2.2.2.msi 2) при обновлении до 1.2.2.1 проблем не возникло msiexec / i 1.2.2.1.msi REINSTALL = ALL REINSTALLMODE= vamus 3) обновление до 1.2.2.2 вызывает проблему msiexec / i 1.2.2.2.msi REINSTALL = ALL REINSTALLMODE = vamus 4) повторите попытку обновления до 1.2.2.2.На этот раз никаких проблем.

Еще одно замечание: один из компонентов в MSI говорит, что у «comp1» было 2 файла, например, file1, file2.File1 - это путь к компоненту comp1.в момент возникновения проблемы (шаг 3) файл1 не обновляется.Но файл2 обновляется правильно.

Еще одно наблюдение.Я запустил выше тест на разных версиях.

-> обновление / понижение между 1.2.1.1 и 1.2.2.1 работает как ожидалось -> обновление / понижение между 1.2.1.1 и 1.2.1.2 не работает какожидается -> обновление / понижение между 1.2.2.1 и 1.2.2.2 не работает должным образом

, как упомянуто выше. Установщик Windows рассматривает версию до abc Обновление / понижение между abcx и abcy вызывает проблемы в Windows-7

Ответы [ 3 ]

1 голос
/ 23 июня 2011

Только 3 части из первых цифр являются ценными, поэтому MSI не делает различий между 1.2.2.2 и 1.2.2.3

0 голосов
/ 16 июня 2011

Все ли файлы правильно перечислены в Таблице файлов с информацией о версии и дате?Увеличились ли номера версий и стали ли даты позже в пакете обновления?

Управление версиями файлов имеет решающее значение для функциональности установщика Windows;по умолчанию файл без информации о версии считается «пользовательскими данными», которые не следует перезаписывать при переустановке или обновлении.Таким образом, обновления являются самыми простыми - и не требуют специальных параметров командной строки - если они заменяют файлы с более высокими номерами версий или более новыми датами.

0 голосов
/ 16 июня 2011

Правильные параметры:

REINSTALL="ALL" REINSTALLMODE="vamus"

Свойства чувствительны к регистру, и их значения должны быть заключены в кавычки.

...