2009-03-02 10 views
2

Модернизация работает нормально, если компоненты не были изменены, но в любое время, когда компонент меняет процесс обновления, он требует, чтобы пользователь вручную удалял и переустанавливал.Wix Major Upgrade, что я делаю неправильно?

Некоторые фрагменты:

<Product Id="*" Name="My Application" Language="1033" Version="!(bind.FileVersion.ClientEXE)" Manufacturer="My Company" UpgradeCode="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
    <Package Id="*" Description="My Installer" Comments="Copyright My Company 2008" InstallerVersion="200" Compressed="yes" /> 
    <Upgrade Id="MYGUID-b94a-44eb-8e92-9286f1d89bbd"> 
     <UpgradeVersion Language="1033" Property="UPGRADEFOUND" Minimum="0.0.0.0" Maximum="99.99.99.99" IncludeMinimum="yes" IncludeMaximum="yes" /> 
    </Upgrade> 


    <InstallExecuteSequence> 
      <RemoveExistingProducts Before="InstallInitialize" /> 
    </InstallExecuteSequence> 

Кроме того, есть некоторые проблемы с следующий раздел реестра иногда не удаляя при удалении, и я не понимаю, почему:

 <Component Id="InstalledRegistry" Guid="SOMEGUID-0a17-4c6b-983d-8f3feb3a7724"> 
     <RegistryKey Id="InstalledRegKey" Root="HKMU" Key="SOFTWARE\MyCompany\Client" Action="createAndRemoveOnUninstall"> 
      <RegistryValue Name="Version" Type="string" Value="!(bind.FileVersion.ClientEXE)" KeyPath="yes"/> 
     </RegistryKey> 
     </Component> 

Вот что чеки загрузчика в знать, следует ли запускать msiexec с помощью «REINSTALL = ALL REINSTALLMODE = vamus» или нет, поэтому, если он был удален, но раздел реестра не удалился, установка попытается выполнить обновление и сработает молча.

Позвольте мне знать, если требуется дополнительная информация


Edit: Был какой-то другой вопрос, потом с только некоторые файлы обновляются. Изменено RemoveExistingProducts для After = "InstallValidate", и это разрешило это. Делает это немного медленнее, так как он полностью удаляет предыдущую установку, а не просто обновляет измененные файлы (что, по-видимому, не показало мне должным образом), но он выполняет свою работу.

ответ

3

FWIW, вам не нужны аргументы командной строки для выполнения основного обновления.

Код выглядит нормально для меня, может быть, номер версии не изменился? (учитывая, что установщик Windows заботится только о трех первых частях, если вы используете номер версии из 4 частей)

+0

Я вижу, поэтому REINSTALL = ALL и REINSTALLMODE не требуются для серьезного обновления. Я думаю, что это может быть проблемой. Принять после подтверждения – Davy8