Программа WIX все еще существует в разделе «Установка и удаление» панели управления. - PullRequest
2 голосов
/ 24 октября 2011

Я сделал свой вариант установки WIX, обнови его так, чтобы он удалял предыдущие DLL, Однако, когда я захожу в панель управления, и перейти к Раздел «Установка и удаление программ», предыдущая версия все еще присутствует.

Как удалить этот предыдущий значок из раздела «Установка и удаление»?

.....

В ответ на комментарий ниже К сожалению, я все еще не могу заставить это работать, предыдущие версии все еще отображаются в разделе «Установка и удаление программ» при обновлении, Вот код

У меня изначально был идентификатор "*", но теперь я просто меняю идентификатор продукта, когда делаю следующую сборку

<Upgrade Id="$(var.UpgradeCode)">
  <UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED"/>
  <UpgradeVersion Minimum="1.0.0"
                  IncludeMinimum="yes"
                  OnlyDetect="no"
                  Maximum="$(var.ProductVersion)"
                  IncludeMaximum="no"
                  Property="PREVIOUSVERSIONSINSTALLED" />
</Upgrade>

1 Ответ

0 голосов
/ 23 марта 2012

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

"*" приводит к тому, что WIX * 1003 генерирует новый guid*

Вы хотите что-то вроде этого:

<!--Product -->
<Product Id="*" Name="$(var.Product.Name)" Language="$(var.Product.Lang)" Version="$(var.Product.Version)" Manufacturer="$(var.Product.Manufacturer)" UpgradeCode="{Replace me with a constant Upgrade Guid}">
<Package InstallerVersion="$(var.Package.InstallerVersion)" Compressed="yes" Platform="$(var.Platform)" />   


   <!--Condition Messages-->
    <Condition Message="A newer version of $(var.Product.Name) is already installed. Exiting installation.">
      <![CDATA[Installed OR NOT NEWER_VERSION_FOUND]]>
    </Condition>

<!-- Upgrade Table -->
<Upgrade Id="{Replace me with a constant Upgrade Guid}">

  <UpgradeVersion
    Property="OLD_VERSION_FOUND"
    Minimum="0.0.0.0"
    Maximum="$(var.Product.Version)"
    IncludeMinimum="yes"
    IncludeMaximum="no"
    OnlyDetect="no"
    IgnoreRemoveFailure="yes"
    MigrateFeatures="yes"
    Language="1033"  />

  <UpgradeVersion
    Property="NEWER_VERSION_FOUND"
    Minimum="$(var.Product.Version)"
    IncludeMinimum="no"
    OnlyDetect="yes"
    Language="1033"  />

</Upgrade>

<!--Removes the old version and then installs the new version-->
<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallInitialize"></RemoveExistingProducts>
  <InstallExecute After="RemoveExistingProducts"></InstallExecute>
</InstallExecuteSequence>

Следует также отметить, что вы не можете переключаться между пользователями и машинами между версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...