Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.219.95.244] |
|
Сообщ.
#1
,
|
|
|
Доброго времени суток!
Вот написал инсталлер, делал его в встроенном в MS Visual Studio 2005 инсталлмейкере. Возникла необходимость - нужно сделать чтобы инсталлер при установке смотрел, установлена ли более старая версия программы и предлагал 2 варианта - заменить ее или установить вместе. Как это можно сделать? |
Сообщ.
#2
,
|
|
|
Установить вместе нельзя.
Но можно попробовать извернуться и всех надуть Вот только не знаю, будет ли этот изврат работать Ну и MS Visual Studio 2005 для этого изврата явно не хватит Итак: 1) Для каждой новой инсталяшки генерируешь новые ProductCode и UpgradeCode 2) Заполняешь таблицу Upgrade и в качестве ActionProperty указываешь что-то вроде "INSTALLER_VER_1_0" 3) Делаешь диалог, в котором будет выбор "заменить ее или установить вместе". 4) Этот диалог должен быть кондиционирован (в качестве условия ставишь INSTALLER_VER_1_0) 5) Показ диалога размещаешь после экшена FindRelatedProducts. 6) Созданый тобой диалог должен устанавливать проперти INSTALLER_VER_1_0 в TRUE, если выбрано "заменить ее" и в FALSE, если выбрано "установить вместе". 6) В таблице Property ищешь проперти с именем SecureCustomProperties и через точку с запятой дописываешь имя новой проперти (INSTALLER_VER_1_0). 7) Проконтролируй, чтобы в таблице InstallExecuteSequence был экшен с именем RemoveExistingProducts. Расположи этот экшн например после InstallFinalize. Собственно все Как я уже сказал, силами MS Visual Studio 2005 это сделать нельзя. Все это можно быстро проделать Orca'ой. |
Сообщ.
#3
,
|
|
|
Спасиба, Fester, попробую..
|
Сообщ.
#4
,
|
|
|
Кстати, я наврал, в INSTALLER_VER_1_0 будет писаться ProductCode, а не TRUE. Так что если тебе не надо будет сносить уже установленую программу, то ничего не недалешь с проперти INSTALLER_VER_1_0, если надо будет сновить, то пишешь пустую строку в INSTALLER_VER_1_0.
|