Инсталяция не обновляет файлы.
От: Juuunior  
Дата: 13.08.09 13:13
Оценка:
Коллеги!

Наблюдаю странную картину.

Выпустили стабильную версию программы.

Сейчас вышла более новая версия. Собираю инсталяху, накатываю поверх установленной предыдущей и... файлы не заменяются

Так же, если после такого обновления удалить программу, то все файлы и ярлыки остаются на месте, а из Установка-Удаление программа пропадает. В чем может быть проблема. Пытался и Major апдейт настроить — ничего не помогает.

InstallShield 2009 использую.

Кто-нибудь сталкивался с подобным?
Re: Инсталяция не обновляет файлы.
От: Сергей Мухин Россия  
Дата: 13.08.09 13:20
Оценка:
Здравствуйте, Juuunior, Вы писали:

J>Коллеги!


J>Наблюдаю странную картину.


J>Выпустили стабильную версию программы.


J>Сейчас вышла более новая версия. Собираю инсталяху, накатываю поверх установленной предыдущей и... файлы не заменяются


J>Так же, если после такого обновления удалить программу, то все файлы и ярлыки остаются на месте, а из Установка-Удаление программа пропадает. В чем может быть проблема. Пытался и Major апдейт настроить — ничего не помогает.


J>InstallShield 2009 использую.


J>Кто-нибудь сталкивался с подобным?


Если Виста, см %UserProfile%\AppData\Local\VirtualStore\Program Files\

и попробуй поставить администратором
---
С уважением,
Сергей Мухин
Re[2]: Инсталяция не обновляет файлы.
От: Juuunior  
Дата: 13.08.09 13:22
Оценка:
Нет это ХР
Re: Инсталяция не обновляет файлы.
От: sunsquirel США  
Дата: 13.08.09 15:38
Оценка:
Здравствуйте, Juuunior, Вы писали:

J>Кто-нибудь сталкивался с подобным?


Подозреваю, что у вас для каждого компонента выбран тип компонента как постоянный, то есть не подлежащий удаления при деинсталляции приложения. Другой вариант — вы как-то выставили на свои файлы флаг Read-only.
Re: Инсталяция не обновляет файлы.
От: WPooh США  
Дата: 13.08.09 17:52
Оценка:
Здравствуйте, 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 (с) НС
Re[2]: Инсталяция не обновляет файлы.
От: Juuunior  
Дата: 17.08.09 05:37
Оценка:
Здравствуйте, 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

вот весь лог целиком: http://slil.ru/27906269

PS: у меня немного поменялся состав компонентов, но основные запускающиеся файлы остались на своих местах.
Обновилась только библиотека, но она во вложениях.
Re[3]: Инсталяция не обновляет файлы.
От: WPooh США  
Дата: 17.08.09 22:46
Оценка:
Здравствуйте, Juuunior, Вы писали:

J>А как сравнить именно .msi файлы? У меня после сборки получается .ехе файл.

Внутри .exe должен находиться .msi.
Способов достать его несколько. Самый простой — при запуске посмотреть содержимое временных папок и скопировать его.
Можно попробовать вытащить .msi при помощи административной установки — но это надо ключики InstallShield'овского результируюшего .exe смотреть. Вроде бы /a подойдет, но если чего, см. тут (первое что попалось).


WP>>Как именно вы накатываете новую поверх? Просто инсталируете?

J>Да я просто инсталирую сначала одну, а затем другую.
Читаю лог.

MSI (c) (1C:70) [09:02:22:508]: Command Line: REINSTALL=ALL REINSTALLMODE=vomus IS_MINOR_UPGRADE=1 TRANSFORMS=C:\DOCUME~1\...\LOCALS~1\Temp\{7DA7C62C-2922-41F4-85F5-9A1F027F574B}\1049.MST SETUPEXEDIR=F:\...\Product Configuration 1\Release 1\DiskImages\Disk1 SETUPEXENAME=la-la-la.exe CURRENTDIRECTORY=F:\...\Product Configuration 1\Release 1\DiskImages\Disk1 CLIENTUILEVEL=0 CLIENTPROCESSID=3356

Классно. Как я вижу, это — 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 (с) НС
Re[4]: Инсталяция не обновляет файлы.
От: Juuunior  
Дата: 18.08.09 04:27
Оценка:
Здравствуйте, 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" — что мне поможет? Только Мажорный апдейт со сменой кода продукта? Но мне нельзя менять версию сильно (только третью цифирю). Вообще желательно не менять версию, но сделать тогда так, чтобы прерыдущая версия сначала деинсталлировалась, а новая затем поставилась как на чистый комп.?
Re[5]: Инсталяция не обновляет файлы.
От: WPooh США  
Дата: 19.08.09 05:43
Оценка:
Здравствуйте, 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 (с) НС
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.