Есть ли какой-нибудь возможный способ выполнить обновление, если коды продуктов для старых и новых версий совпадают?
У нас есть два установщика, встроенных в WIX с ограничением, что код продукта должен оставаться неизменным. При переходе от старого к новому я получаю сообщение об ошибке: "Указанная учетная запись уже существует".
Позволяет ли WIX любой обходной путь для меня, чтобы выполнить обновление, сохраняя при этом код моего продукта без изменений.
2 ответа
Это зависит от того, что вы подразумеваете под "обновлением", но не существует такой вещи, как серьезное обновление, при котором код продукта остается прежним. Сохранение этого не является ограничением, это против того, что делает главное обновление. Вы должны сказать, почему вы считаете, что это является сдерживающим фактором, и если вы решили, что это решение проблемы, о которой вы нам не сказали.
Сообщение об ошибке от какого-либо пользовательского действия CreateUser утилиты WiX. Вы не указали, что вы изменили в своем файле MSI, но если вы просто запускаете новый MSI и у него тот же ProductCode, то вы, вероятно, делаете восстановление, и это восстановление снова запускает CreateUser и сообщает вам об этом уже существует. Вы должны предоставить больше информации о вашем CreateUser.
Вам также нужно будет сказать, какой тип обновления вы делаете (основной, второстепенный?), И если он незначительный, то какова ваша командная строка?
Незначительное обновление: это всего лишь незначительное обновление - форма MSI, отличающаяся от более распространенного крупного обновления. Информация о патчинге и обновлениях (в целом).
Сложный и ограниченный: существует ряд ограничений для небольших обновлений, которые заставляют большинство людей использовать крупные обновления. По сути, незначительное обновление может добавить новые функции и компоненты, но не может реорганизовать дерево компонентов. Но подождите, есть еще много ограничений:
- Незначительные обновления не могут изменить имя файла MSI, оно должно соответствовать ранее установленной версии. Я всегда заканчиваю тем, что бьюсь головой об этом, забыв об ограничении, отсюда и это конкретное упоминание.
- Некоторые дополнительные ограничения, которые могут быть объяснены в файле справки Flexera: " Основное обновление против Небольшого обновления против Небольшого обновления" (третий столбец).
- Устаревшее, но хорошее содержимое от installsite.org по той же теме: Обновления и исправления установщика Windows.
- MSDN описание ограничений: изменение кода продукта
- Перечень ограничений и ограничений Advanced Installer "Создание исправлений" (относится к небольшим обновлениям в целом, а также к незначительным обновлениям, поставляемым как исправления).
Установка незначительных обновлений: незначительное обновление может быть доставлено в виде обычного MSI или в виде файла исправления. Стандартная командная строка, используемая для установки обычного файла MSI:
msiexec.exe /i MySetup.msi REINSTALLMODE=vomus REINSTALL=ALL
Возможно, посетите эту страницу справочного файла Flexera для получения более подробной информации об установке незначительных обновлений (некоторые специфичные для Flexera, но в основном общие). Вот откуда вышеприведенная командная строка.
Личное мнение: Позвольте мне закончить субъективным наблюдением. Я нахожу небольшие обновления для реального использования, и я только успешно использовал их для "исправления" (просто обновить пару файлов без других изменений) и для исправления ошибок в последовательностях удаления установленного продукта, которые мешали их успешному удалению, В этих случаях незначительные обновления стали настолько простыми, что они работали надежно. Чтобы доставить реальный продукт с незначительными обновлениями, требуется много заботы, предвидения и дисциплины (не говоря уже о терпеливом и проницательном менеджере по продукту, который поймет эти технологические ограничения и что они означают для реального развертывания продукта).
Учитывая все сказанное, давайте не будем недооценивать огромные корпоративные преимущества MSI (помимо простых проблем с обновлением и связанных деталей):
- Основные преимущества MSI (сжатый -
"executive summary"
) - Корпоративные преимущества использования файлов MSI (подробный и подробный)