Сейчас вышла более новая версия. Собираю инсталяху, накатываю поверх установленной предыдущей и... файлы не заменяются
Так же, если после такого обновления удалить программу, то все файлы и ярлыки остаются на месте, а из Установка-Удаление программа пропадает. В чем может быть проблема. Пытался и Major апдейт настроить — ничего не помогает.
Здравствуйте, Juuunior, Вы писали:
J>Коллеги!
J>Наблюдаю странную картину.
J>Выпустили стабильную версию программы.
J>Сейчас вышла более новая версия. Собираю инсталяху, накатываю поверх установленной предыдущей и... файлы не заменяются
J>Так же, если после такого обновления удалить программу, то все файлы и ярлыки остаются на месте, а из Установка-Удаление программа пропадает. В чем может быть проблема. Пытался и Major апдейт настроить — ничего не помогает.
J>InstallShield 2009 использую.
J>Кто-нибудь сталкивался с подобным?
Если Виста, см %UserProfile%\AppData\Local\VirtualStore\Program Files\
Здравствуйте, Juuunior, Вы писали:
J>Кто-нибудь сталкивался с подобным?
Подозреваю, что у вас для каждого компонента выбран тип компонента как постоянный, то есть не подлежащий удаления при деинсталляции приложения. Другой вариант — вы как-то выставили на свои файлы флаг Read-only.
Здравствуйте, Juuunior, Вы писали:
J>Коллеги!
J>Наблюдаю странную картину.
J>Выпустили стабильную версию программы.
J>Сейчас вышла более новая версия. Собираю инсталяху, накатываю поверх установленной предыдущей и... файлы не заменяются
J>Так же, если после такого обновления удалить программу, то все файлы и ярлыки остаются на месте, а из Установка-Удаление программа пропадает. В чем может быть проблема. Пытался и Major апдейт настроить — ничего не помогает.
Надо сравнивать msi файлы, чтобы понять, в чем проблема. Там могут быть проблемы с GUID'ами, составом компонентов и пр. Куча причин.
Как именно вы накатываете новую поверх? Просто инсталируете?
Для начала, установите первую версию. После этого запустите инсталяцию второй версии с логированием (msiexec.exe /i packet2.msi /lvx* packet2.install.log) и читайте внимательно лог файл. Если сложно читать лог целиком, посмотрите его с помощью утилитки WiLogUtl.exe
Найдете что-то подозрительное и непонятное — пишите.
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС
Здравствуйте, WPooh, Вы писали:
WP>Надо сравнивать msi файлы, чтобы понять, в чем проблема. Там могут быть проблемы с GUID'ами, составом компонентов и пр. Куча причин.
WP>Для начала, установите первую версию. После этого запустите инсталяцию второй версии с логированием (msiexec.exe /i packet2.msi /lvx* packet2.install.log) и читайте внимательно лог файл. Если сложно читать лог целиком, посмотрите его с помощью утилитки WiLogUtl.exe
WP>Найдете что-то подозрительное и непонятное — пишите.
А как сравнить именно .msi файлы? У меня после сборки получается .ехе файл.
WP>Как именно вы накатываете новую поверх? Просто инсталируете?
Да я просто инсталирую сначала одну, а затем другую.
В логе вот что мне показалось странным:
MSI (s) (E0:D8) [09:02:26:865]: Doing action: InstallFiles
Действие 9:02:26: InstallFiles. Копирование новых файлов
Начало действия 9:02:26: InstallFiles.
MSI (s) (E0:D8) [09:02:26:865]: Dumping binary patch manager data...
MSI (s) (E0:D8) [09:02:26:865]: The file represented by File table key 'kongraf.exe' has no eligible binary patches
MSI (s) (E0:D8) [09:02:26:881]: The file represented by File table key '_E7927BC7DA29996EAB71A92BC8E484AE' has no eligible binary patches
MSI (s) (E0:D8) [09:02:26:881]: The file represented by File table key '_043D5AC3069C52E4FBF5B18EFF2F997D' has no eligible binary patches
PS: у меня немного поменялся состав компонентов, но основные запускающиеся файлы остались на своих местах.
Обновилась только библиотека, но она во вложениях.
Здравствуйте, Juuunior, Вы писали:
J>А как сравнить именно .msi файлы? У меня после сборки получается .ехе файл.
Внутри .exe должен находиться .msi.
Способов достать его несколько. Самый простой — при запуске посмотреть содержимое временных папок и скопировать его.
Можно попробовать вытащить .msi при помощи административной установки — но это надо ключики InstallShield'овского результируюшего .exe смотреть. Вроде бы /a подойдет, но если чего, см. тут (первое что попалось).
WP>>Как именно вы накатываете новую поверх? Просто инсталируете? J>Да я просто инсталирую сначала одну, а затем другую.
Читаю лог.
Классно. Как я вижу, это — small update. В связи с чем вопрос — поменялась ли версия продукта во второй инсталяшке или нет? Вторая имеет версию 1.10.01. Какая была предыдущая?
J>В логе вот что мне показалось странным: J>MSI (s) (E0:D8) [09:02:26:865]: The file represented by File table key 'kongraf.exe' has no eligible binary patches
Это вторично. Или даже не имеет отношения к проблеме. Важно понять, менялась ли версия.
Если правильно помню, для Windows Installer Minor Upgrade отличается от small update только сменой Product Version. А внутренний механизм обновления отличается.
J>PS: у меня немного поменялся состав компонентов, но основные запускающиеся файлы остались на своих местах.
Это может быть проблемой, а может и не быть. Зависит от того, поменялись ли ключевые файлы компонентов, или нет. Тут я сильно не помню, но главное указано в MSDN —
A small update does not permit reorganization of the feature-component tree.
В общем, я бы в первую очередь именно отсюда двигался. Версия инсталяшки и состав компонентов.
J>Обновилась только библиотека, но она во вложениях.
Что такое "вложения"? MergeModule или имеется в виду, что только содержимое файлов поменялось?
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС
Здравствуйте, WPooh, Вы писали:
WP>Классно. Как я вижу, это — small update. В связи с чем вопрос — поменялась ли версия продукта во второй инсталяшке или нет? Вторая имеет версию 1.10.01. Какая была предыдущая?
Я пробовал по разному, пробовал и менять версию на более свежую и оставлять такую же — результат одинаково плох.
Но в данном случае версия та же. При этом возникает проблема с обновлением компонентов, которые были сделаны на основе динамических ссылок.
J>>PS: у меня немного поменялся состав компонентов, но основные запускающиеся файлы остались на своих местах. WP>Это может быть проблемой, а может и не быть. Зависит от того, поменялись ли ключевые файлы компонентов, или нет. Тут я сильно не помню, но главное указано в MSDN — WP>
A small update does not permit reorganization of the feature-component tree.
WP>В общем, я бы в первую очередь именно отсюда двигался. Версия инсталяшки и состав компонентов.
J>>Обновилась только библиотека, но она во вложениях. WP>Что такое "вложения"? MergeModule или имеется в виду, что только содержимое файлов поменялось?
Имеется ввиду, что в проекте есть подпапка, в которой еще одна папка, в которой и были уже изменения. Но при этом почему-то и основной .ехе файл не обновлялся.
Если у меня произошло "reorganization of the feature-component tree" — что мне поможет? Только Мажорный апдейт со сменой кода продукта? Но мне нельзя менять версию сильно (только третью цифирю). Вообще желательно не менять версию, но сделать тогда так, чтобы прерыдущая версия сначала деинсталлировалась, а новая затем поставилась как на чистый комп.?
Здравствуйте, Juuunior, Вы писали:
J>Я пробовал по разному, пробовал и менять версию на более свежую и оставлять такую же — результат одинаково плох. J>Но в данном случае версия та же. При этом возникает проблема с обновлением компонентов, которые были сделаны на основе динамических ссылок.
Если не сложно, расскажите вкратце что такое динамические ссылки. Если это автоматическое добавление файлов в инсталяшку из какой-то папки во время билда, то вопрос, производится ли check-in проектного файла в репозиторий (CVS, SVN, P4, etc.) или нет? Важный момент при этом — идентификаторы компонентов и названия ключевых файлов. Если этого нет, то дело достаточно плохо с точки зрения апгрейдов. Как раз то поведение, что у вас описано — некоторые файлы не удаляются и не апдейтятся. Именно те файлы, которые быди добавлены в инсталяшку "динамически" при сборке пакета. Эта "фича" требует осторожного обращения, если продукт может потребовать обновлений.
J>Имеется ввиду, что в проекте есть подпапка, в которой еще одна папка, в которой и были уже изменения. Но при этом почему-то и основной .ехе файл не обновлялся.
Может быть несколько причин, например, версия файла не изменилась. Почитайте про версии файлов и подтопики, чтобы понять, как именно поступает WI при копировании файлов. Очень кратко — он старается не копировать файл из новой инсталяшки в большинстве случаев.
J>Если у меня произошло "reorganization of the feature-component tree" — что мне поможет? Только Мажорный апдейт со сменой кода продукта? Но мне нельзя менять версию сильно (только третью цифирю). Вообще желательно не менять версию, но сделать тогда так, чтобы прерыдущая версия сначала деинсталлировалась, а новая затем поставилась как на чистый комп.?
Вообще, при изменениях файлов, желательно менять версию. Хотя бы из тех соображений, чтобы понять, что именно установлено.
Да, конечно, можно сначала деинсталировать предыдущую версию, а потом ставить новую. Вопрос в том, как это организовать. Если средствами WI — нужен новый продукт (то есть, поменять Product Code). Свойми средствами — да, но нужен свой bootstrapper (несложно, но надо делать руками).
Если у вас есть время, я рекомендую прочитать книжку The Definitive Guide to Windows Installer. Классная вешь! Старая, но про основы — самое то.
Это не значит, что я умываю руки, я буду и дальше отвечать на вопросы, просто мне не хочется сильно много на эту тему писать. Определите, что вам нужео понять, я попробую направить в нужную сторону. Ну и потом, я уже за 5 лет некоторых тонкостей не помню.
Главное скажу — upgrade — гораздо сложнее установки с нуля.
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС