Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 29.11.18 16:21
Оценка:
Ранее делал msi с помощью Setup-project от MS. Теперь он уже не пригоден для использования, так как не совместим с Open-source library guidance.

Перевел на WiX, попробовал использовать тот же UpgradeCode. Но все равно система воспринимает как два разных продукта. Как седалть, чтобы система устанавливала не как новый продукт а как обновление уже существующего?
Отредактировано 29.11.2018 16:22 Shmj . Предыдущая версия .
Re: Как перейти на WiX?
От: alexander_r  
Дата: 29.11.18 20:04
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ранее делал msi с помощью Setup-project от MS. Теперь он уже не пригоден для использования, так как не совместим с Open-source library guidance.


S>Перевел на WiX, попробовал использовать тот же UpgradeCode. Но все равно система воспринимает как два разных продукта. Как седалть, чтобы система устанавливала не как новый продукт а как обновление уже существующего?

для Upgrat-а нужно менять Product Id и Version
<Product Id="*" Name="SetupProject2" Language="1033" Version="1.11.0.0" Manufacturer="TEST_MSI" UpgradeCode="3666762e-87cf-4691-b27b-3eac8953e005">

т.е в этом коде нужно увеличить Version и все должно обновиться
Отредактировано 29.11.2018 20:09 alexander_r . Предыдущая версия .
Re[2]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 00:02
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>для Upgrat-а нужно менять Product Id и Version

_>
_><Product Id="*" Name="SetupProject2" Language="1033" Version="1.11.0.0" Manufacturer="TEST_MSI" UpgradeCode="3666762e-87cf-4691-b27b-3eac8953e005">
_>

_>т.е в этом коде нужно увеличить Version и все должно обновиться

Дело в том, что раньше у меня инсталлер создавался не с помощью WiX а с помощью Setup-project от MS. Взял из старого Setup-project UpgradeCode. Пробовал как в скобочках {3666762e-87cf-4691-b27b-3eac8953e005} так и без 3666762e-87cf-4691-b27b-3eac8953e005. В любом случае создается независимая установка, файлы просто затираются. В Add/Remove Program получается две записи.

Что же делать?
Re[3]: Как перейти на WiX?
От: alexander_r  
Дата: 30.11.18 09:24
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, alexander_r, Вы писали:


_>>для Upgrat-а нужно менять Product Id и Version

_>>
_>><Product Id="*" Name="SetupProject2" Language="1033" Version="1.11.0.0" Manufacturer="TEST_MSI" UpgradeCode="3666762e-87cf-4691-b27b-3eac8953e005">
_>>

_>>т.е в этом коде нужно увеличить Version и все должно обновиться

S>Дело в том, что раньше у меня инсталлер создавался не с помощью WiX а с помощью Setup-project от MS. Взял из старого Setup-project UpgradeCode. Пробовал как в скобочках {3666762e-87cf-4691-b27b-3eac8953e005} так и без 3666762e-87cf-4691-b27b-3eac8953e005. В любом случае создается независимая установка, файлы просто затираются. В Add/Remove Program получается две записи.


S>Что же делать?


Собрал два MSI
<Product Id="*" Name="SetupProject2" Language="1033" Version="1.11.0.0" Manufacturer="TEST_MSI" UpgradeCode="3666762e-87cf-4691-b27b-3eac8953e005">


<Product Id="*" Name="SetupProject2" Language="1033" Version="1.11.1.0" Manufacturer="TEST_MSI" UpgradeCode="3666762e-87cf-4691-b27b-3eac8953e005">


Все прекрасно работает т.е 1.11.0.0->1.11.1.0 — обновление, 1.11.1.0->1.11.0.0 — ошибка "Установлена более новая версия..."

у вас не обновляется Setup-project -> WiX или Wix ->Wix?
надо смотреть как настроен MSI созданный Setup-project, что прописано в таблице Property и сравнить его с MSI созданным Wix-ом
Re[3]: Как перейти на WiX?
От: Mr.Delphist  
Дата: 30.11.18 11:39
Оценка:
Здравствуйте, Shmj, Вы писали:

S>В Add/Remove Program получается две записи.


Мой внутренний капитан кричит, что получается два разных Product ID или Publisher ID
Re[4]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 15:19
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>у вас не обновляется Setup-project -> WiX или Wix ->Wix?


Конечно Setup-project -> WiX. Раньше использовал решение от MS, сейчас оно уже перестало корректно работать и приходится переползать на WiX.

_>надо смотреть как настроен MSI созданный Setup-project, что прописано в таблице Property и сравнить его с MSI созданным Wix-ом


Я взял UpgradeCode из проекта Setup-project, скопировал его в конфигурацию WiX. Но это не помогло — все равно устанавливает как независимый продукт. Где посмотреть? В реестре вообще не нашел этого UpgradeCode, только Product Id.
Re[4]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 15:21
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Мой внутренний капитан кричит, что получается два разных Product ID или Publisher ID


Вроде Product ID и так должен изменяться для каждой новой версии а сохраняется только UpgradeCode

Publisher ID — это что? Есть Product Name и Manufacturer — они совпадают.
Re[5]: Как перейти на WiX?
От: alexander_r  
Дата: 30.11.18 15:47
Оценка: 17 (3)
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, alexander_r, Вы писали:


_>>у вас не обновляется Setup-project -> WiX или Wix ->Wix?


S>Конечно Setup-project -> WiX. Раньше использовал решение от MS, сейчас оно уже перестало корректно работать и приходится переползать на WiX.


_>>надо смотреть как настроен MSI созданный Setup-project, что прописано в таблице Property и сравнить его с MSI созданным Wix-ом


S>Я взял UpgradeCode из проекта Setup-project, скопировал его в конфигурацию WiX. Но это не помогло — все равно устанавливает как независимый продукт. Где посмотреть? В реестре вообще не нашел этого UpgradeCode, только Product Id.


Orca.exe is a database table editor for creating and editing Windows Installer packages and merge modules
открываете и смотрите таблицу Property
Re[6]: Как перейти на WiX?
От: alexander_r  
Дата: 30.11.18 15:53
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>Здравствуйте, Shmj, Вы писали:


S>>Здравствуйте, alexander_r, Вы писали:


_>>>у вас не обновляется Setup-project -> WiX или Wix ->Wix?


S>>Конечно Setup-project -> WiX. Раньше использовал решение от MS, сейчас оно уже перестало корректно работать и приходится переползать на WiX.


_>>>надо смотреть как настроен MSI созданный Setup-project, что прописано в таблице Property и сравнить его с MSI созданным Wix-ом


S>>Я взял UpgradeCode из проекта Setup-project, скопировал его в конфигурацию WiX. Но это не помогло — все равно устанавливает как независимый продукт. Где посмотреть? В реестре вообще не нашел этого UpgradeCode, только Product Id.


_>Orca.exe is a database table editor for creating and editing Windows Installer packages and merge modules

_>открываете и смотрите таблицу Property

а версия для нового MSI у вас меняется?
Re: Как перейти на WiX?
От: 0x7be СССР  
Дата: 30.11.18 16:32
Оценка: +2
Здравствуйте, Shmj, Вы писали:

S>Ранее делал msi с помощью Setup-project от MS. Теперь он уже не пригоден для использования, так как не совместим с Open-source library guidance.

S>Перевел на WiX, попробовал использовать тот же UpgradeCode. Но все равно система воспринимает как два разных продукта. Как седалть, чтобы система устанавливала не как новый продукт а как обновление уже существующего?
Как человек, травмированный Windows Installer-ом, могу лишь отговорить тебя от этого...
Re[6]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 19:33
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>Orca.exe is a database table editor for creating and editing Windows Installer packages and merge modules

_>открываете и смотрите таблицу Property

Псмотрел. Открыл вкладку Upgrade, там таблица с 2-мя записями.

1. UpgradeCode — совпадает и у Setup-proj и у WiX.
2. Version Min/Max — указаны правильно. В Setup-proj версия 2.0.1 а в WiX 3.1.4.
3. А вот ActionProperty в этой же таблице в Setup-project PREVIOUSVERSIONSINSTALLED и NEWERPRODUCTFOUND а в WiX — WIX_UPGRADE_DETECTED и WIX_DOWNGRADE_DETECTED.

Что еще посмотреть?
Re[7]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 19:33
Оценка:
Здравствуйте, alexander_r, Вы писали:

_>а версия для нового MSI у вас меняется?


Да, версия и Product Id изменяются. UpgradeCode — совпадает.
Re[2]: Как перейти на WiX?
От: Shmj Ниоткуда  
Дата: 30.11.18 19:34
Оценка: +1
Здравствуйте, 0x7be, Вы писали:

0>Как человек, травмированный Windows Installer-ом, могу лишь отговорить тебя от этого...


Даже от WiX? А что же вместо него?
Re[7]: Как перейти на WiX?
От: alexander_r  
Дата: 30.11.18 21:33
Оценка: 14 (2)
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, alexander_r, Вы писали:


_>>Orca.exe is a database table editor for creating and editing Windows Installer packages and merge modules

_>>открываете и смотрите таблицу Property

S>Псмотрел. Открыл вкладку Upgrade, там таблица с 2-мя записями.


S>1. UpgradeCode — совпадает и у Setup-proj и у WiX.

S>2. Version Min/Max — указаны правильно. В Setup-proj версия 2.0.1 а в WiX 3.1.4.
S>3. А вот ActionProperty в этой же таблице в Setup-project PREVIOUSVERSIONSINSTALLED и NEWERPRODUCTFOUND а в WiX — WIX_UPGRADE_DETECTED и WIX_DOWNGRADE_DETECTED.

S>Что еще посмотреть?


Даже не знаю
Попробуйте на форуме wix-а задать вопрос как делать upgrade msi_setup_proj на msi_wix и чем они могут отличаться
Можно декомпилировать msi_setup_proj с помощью Dark.exe из WixToolset, т.е msi -> .wxs и дальше сравнить, чем отличается Setup-proj.wxs от стандартного

Еще проблема может быть с типом установки per-machine/per-user т.е в обоих msi должны быть одинаковые property ALLUSERS

https://stackoverflow.com/questions/678002/how-do-i-fix-the-upgrade-logic-of-a-wix-setup-%20after-changing-installscope-to-per
https://stackoverflow.com/questions/15652821/how-to-change-from-per-user-to-all-user-installation
Отредактировано 30.11.2018 23:09 alexander_r . Предыдущая версия . Еще …
Отредактировано 30.11.2018 22:57 alexander_r . Предыдущая версия .
Re[3]: Как перейти на WiX?
От: Mystic Artifact  
Дата: 01.12.18 00:08
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Даже от WiX? А что же вместо него?

Ничего вменяемого вместо него не было, нет и не будет. Все остальные поделия являются именно поделиями, т.к. не доставляют аналогичный функционал. Просто стоит покопать тему. Да, это не очень приятно, т.к. "технология" та еще. Но она единственная работает.
Re[3]: Как перейти на WiX?
От: 0x7be СССР  
Дата: 01.12.18 11:19
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Даже от WiX? А что же вместо него?

Wix — это лишь буквальное переложение всех деталей windows installer в xml-синтаксис. И всей бредовости тоже. Я делал однажды инсталлятор для крупного продукта на wix. В итоге после длительной борьбы с этой античеловеческой технологией мы сделали самописный инсталлятор на c#.
Re: Как перейти на WiX?
От: _NN_ www.nemerleweb.com
Дата: 02.12.18 18:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ранее делал msi с помощью Setup-project от MS. Теперь он уже не пригоден для использования, так как не совместим с Open-source library guidance.


S>Перевел на WiX, попробовал использовать тот же UpgradeCode. Но все равно система воспринимает как два разных продукта. Как седалть, чтобы система устанавливала не как новый продукт а как обновление уже существующего?


Тут советовали WixSharp.
Может с ним проще будет ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: Как перейти на WiX?
От: vmpire Россия  
Дата: 06.12.18 11:25
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Псмотрел. Открыл вкладку Upgrade, там таблица с 2-мя записями.


S>1. UpgradeCode — совпадает и у Setup-proj и у WiX.

S>2. Version Min/Max — указаны правильно. В Setup-proj версия 2.0.1 а в WiX 3.1.4.
S>3. А вот ActionProperty в этой же таблице в Setup-project PREVIOUSVERSIONSINSTALLED и NEWERPRODUCTFOUND а в WiX — WIX_UPGRADE_DETECTED и WIX_DOWNGRADE_DETECTED.

S>Что еще посмотреть?

Посмотрите то же самое (product code и upgrade code) в таблице Property, но не в инсталляционном пакете, а после установки в закэшированном MSI и в Registry. К сожалению, точные места подсказать не могу, давно этим занимался.
Есть шанс, что Setup project делает transform instance при установке и меняет код продукта.
Если так — малой кровью не обойтись, нужно будет делать обёртку над MSI, которая будет смотреть, какой продукт код у продукта именно на этой машине и менять её в msi перед апгрейдом.

Может быть будет проще делать просто деинсталляцию старого продукта и установку нового в случае смены версии?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.