Wix grande atualização, o que estou fazendo de errado?
Pergunta
Upgrades funcionam bem, se há componentes mudaram, mas a qualquer momento um componente muda a atualização falhar e que exige que o usuário manualmente desinstalar e reinstalar.
Alguns trechos:
<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>
Além disso, tem algum problema com a seguinte chave do registro às vezes não remoção na desinstalação e eu não entendo por que:
<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>
Isso é o que as verificações bootstrapper para saber se a msiexec lançamento com "REINSTALL = ALL REINSTALLMODE = vamus" ou não, por isso, se ele foi desinstalado, mas a chave de registro não obter a configuração removido tentaria fazer um upgrade e falha silenciosamente .
Deixe-me saber se alguma for necessária mais informação
Edit: Houve algum outro problema depois com apenas alguns arquivos que estão sendo atualizados. Mudou RemoveExistingProducts para Após = "InstallValidate" e que resolveu isso. Faz com que seja um pouco mais lento, uma vez que remove totalmente a instalação anterior, em vez de apenas arquivos de modernização que mudou (que não parecia detectar corretamente para mim), mas ele começa o trabalho feito.
Solução
FWIW, você não precisa de quaisquer argumentos de linha de comando para executar uma grande atualização.
O código parece ok para mim, então pode ser que o número da versão não é alterado? (Tendo em mente que o Windows Installer só se preocupa com as três primeiras partes se você estiver usando um número de versão de 4 partes)