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


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

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



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


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> Установка новой сборки , WiX
    Есть проект. Для него сделан инсталятор с помощью WiX технологии.
    Но случилось так, что пришлось проект пересобрать, при этом версию не меняем.
    При установке на компьютере, где была установлена предыдущая сборка, сообщается о том, что данная программа уже установлена и требуется сначала ее удалить.
    Как можно избежать этого и сделать так, чтобы новая сборка устанавливалась поверх старой?
      Хм... Порылся на форуме, вроде нужно для каждой сборки новый Product Id назначать? В этом случае будет minor upgrade, правильно?
        minor upgrade - это когда только версия изменяется.
        Измени версию и ProductCode, пересобери и наслаждайся major upgrade'ом :)
          С изменением только ProductCode прокатило.
          А версию менять нельзя, так как изменения при пересборке были минимальными. Не увеличивать же из-за этого версию продукта. :huh:
            Это версия MSI пакета.
            К продукту эта версия имеет весьма опосредованное отношение.
              Что-то не работает minor upgrade. Меняю версию, но не меняю ProductCode, но при попытке установить новую версию, вылетает сообщение "Другая версия этого продукта уже установлена. Установка этой версии не может быть продолжена. Бла-бла-бла...".

              ExpandedWrap disabled
                  <?define ProductCode="172E0937-20C9-44e9-8D8D-826460E57836"?>
                  <?define UpgradeCode="2BB5470E-D81A-4898-8EC5-C2D3455582FC"?>
                  <?define ProductVersion="1.0.3"?>
                  <Product Id="$(var.ProductCode)"
                           Name="!(loc.ProductName)"
                           Language="1049"
                           Version="$(var.ProductVersion)"
                           Manufacturer="!(loc.Manufacturer)"
                           UpgradeCode="$(var.UpgradeCode)">
                        <Package Description="!(loc.ProductName)" Comments="!(loc.ProductName)" Manufacturer="!(loc.Manufacturer)" InstallerVersion="200" Compressed="yes" />
                 
                    <!-- Upgrade section -->
                    <Upgrade Id="$(var.UpgradeCode)">
                      <UpgradeVersion
                          Minimum="1.0.0"
                          IncludeMinimum="yes"
                          Maximum="$(var.ProductVersion)"
                          Property="OLDERVERSIONBEINGUPGRADED"
                      />
                    </Upgrade>
                    <!-- /Upgrade section -->
                 
                ......
                 
                    <InstallExecuteSequence>
                      <RemoveExistingProducts After="InstallInitialize"/>
                    </InstallExecuteSequence>
                Цитата AZote @
                Что-то не работает minor upgrade.

                Минор апгрейд надо запускать с параметрами:
                msiexec /i mymsi.msi REINSTALL=ALL REINSTALLMODE=vomus
                  Делаю Major Upgrade...
                  ExpandedWrap disabled
                        <Upgrade Id="$(var.UpgradeCode)">
                          <UpgradeVersion
                              Minimum="0.0.0"
                              IncludeMinimum="yes"
                              Maximum="$(var.ProductVersion)"
                              Property="OLDERVERSIONBEINGUPGRADED"
                          />
                        </Upgrade>


                  ExpandedWrap disabled
                        <InstallExecuteSequence>
                          <RemoveExistingProducts After="InstallInitialize"/>
                     
                          <Custom Action="RegServer"     After="InstallFinalize">Not Installed</Custom>
                     
                          <Custom Action="UnRegServer"  Before="RemoveFiles">Installed</Custom>
                        </InstallExecuteSequence>


                  Увеличиваю версию, меняю продукт код. Все нормально, устанавливается новая версия, а старая удаляется... Но! Когда после установки новой версии, устанавливаю старую, то она тихо и спокойно ставится поверх новой, хотя по идее не должна вообще устанавливаться...

                  Что нужно добавить в код или изменить?
                    смотри что и почему пишется в проперти OLDERVERSIONBEINGUPGRADED.
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0240 ]   [ 14 queries used ]   [ Generated: 20.05.24, 17:50 GMT ]