На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



Если в ходе решения проблемы возникли дополнительные вопросы, по возможности задаем их в той же теме.


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> Замена старой версии программы , в visual studio installer
    Доброго времени суток! :yes:

    Вот написал инсталлер, делал его в встроенном в MS Visual Studio 2005 инсталлмейкере. Возникла необходимость - нужно сделать чтобы инсталлер при установке смотрел, установлена ли более старая версия программы и предлагал 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'ой.
        Спасиба, Fester, попробую.. :yes:
          Кстати, я наврал, в INSTALLER_VER_1_0 будет писаться ProductCode, а не TRUE. Так что если тебе не надо будет сносить уже установленую программу, то ничего не недалешь с проперти INSTALLER_VER_1_0, если надо будет сновить, то пишешь пустую строку в INSTALLER_VER_1_0.
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0167 ]   [ 14 queries used ]   [ Generated: 12.05.24, 13:18 GMT ]