У меня есть установка, разработанная в installshield (1.5.0)
Мы выпустили несколько патчей (1.5.1, 1.5.2, 1.5.3, 1.5.4 и т. Д.). Все они являются накопительными патчами и включают в себя все изменения. Они выпускаются в виде MSP-файлов
Мы только что выпустили полную версию MSI 1.5.14.
Если я установлю и другие в нашем офисе запустим 1.5.0-> 1.5.4-> 1.5.14, ошибки не будет.
Клиент запустил ту же последовательность и получил ошибку 1309. Он говорит, что файл распакован, когда его нужно сжать.
Выполнение операции:
FileCopy (SourceName = xx.EXE | xx.exe, SourceCabKey = xx.exe, DestName = xx.exe, Attributes = 8192, FileSize = 163840, PerTick = 65536,, VerifyMedia = 1 ,,,,, CheckCRC = 0, Version = 1.0.0.0, язык = 0, InstallMode = 130023424 ,,,,,,,)
Файл:
D: \ уу \ ZZ \ xx.exe; Переписать; Не исправит; REINSTALLMODE
указывает все файлы, которые будут перезаписаны
Исходный файл "xx.exe" - без сжатия , в
'D: \ 1.5.14 \ DISK1 \ уу \ ZZ \'.
Повторное применение защиты из существующего файла. Проверка доступности файла: xx.exe
Примечание: 1: 1309 2: 3 3:
Я полагаю, что проблема связана с последовательностью исправлений и преобразованием таблиц. Когда установка находит исправления для последовательности, она выдает эту ошибку. Когда этого не происходит, нет ошибки. Я не хочу, чтобы патчи были упорядочены.
Если я удаляю патчи для последовательности в реестре, ошибка не происходит.
Эта установка уже выпущена, и мне нужно, чтобы она работала. Я не хочу просить клиентов удалить записи реестра.
Реестр
Удалено HKEY_CLASSES_ROOT \ Установщик \ Код продукта \ Патчи
Данные исправления: ": Prev1ToAutoLatest;: # Prev1ToAutoLatest"
Журнал показывает:
Требуется преобразование патча: Prev1ToAutoLatest
Что означает Prev1ToAutoLatest? Похоже, что это связано.
Есть ли опция командной строки, которую я могу использовать, чтобы указать msi пропустить шаг последовательности исправлений?
Отредактировано: Я думаю, что ошибка 1309 происходит, потому что патч был собран из несжатой установки (которая никогда не выпускалась как полная установка), а msi - это сжатая установка. Если я пропущу патч, это не проблема.