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.

Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top