Aplicando o MSP ao MSI sem instalar o MSI

3

Estou gerando um repositório de dependências e suas respectivas versões. Eu sou capaz de extrair o MSI usando

msiexec / a "c: \ temp \ 2 \ MyMSI.msi" /qb TARGETDIR="c: \ extraído" REINSTALLMODE="amus" REINSTALL="ALL"

Esta parte está funcionando bem, mas quando vou aplicar o MSP não consigo fazer funcionar.

Eu tentei

  • msiexec / a "c: \ temp \ MyMSI.msi" /qb TARGETDIR="C: \ extraído" REINSTALLMODE="amus" PATCH="c: \ temp \ MyPatch.msp"

  • msiexec / a "C: \ extraído \ MyMSI.msi" / qb TARGETDIR="C: \ extraído" REINSTALLMODE="amus" PATCH="c: \ temp \ MyPatch.msp"

  • msiexec / a "C: \ extraído \ MyMSI.msi" / p "c: \ temp \ MyPatch.msp"

  • msiexec / a "C: \ temp \ MyMSI.msi" / p "c: \ temp \ MyPatch.msp"

  • vários outros com sucesso

Eu continuo recebendo a mensagem

A mensagem faz sentido porque eu ainda não instalei o MSI, mas preciso obter os arquivos atualizados do patch.

Devo notar que isso está sendo executado em um loop sobre aprox. 60 msi, então eu preferiria etapas manuais mínimas.

UPDATE: Abaixo estão as entradas do log

MSI (c) (60:68) [16:19:02:645]: SequencePatches starts. Product code: {1B7D2B53-5A7D-4227-9441-BDB9F1047672}, Product version: 15.1.15.28, Upgrade code: {2DB5D3D4-42AF-49D4-B6B5-B4F9540DA781}, Product language 1033
MSI (c) (60:68) [16:19:02:645]: PATCH SEQUENCER: verifying the applicability of minor upgrade patch c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp against product code: {1B7D2B53-5A7D-4227-9441-BDB9F1047672}, product version: 15.1.15.28, product language 1033 and upgrade code: {2DB5D3D4-42AF-49D4-B6B5-B4F9540DA781}
MSI (c) (60:68) [16:19:02:646]: PATCH SEQUENCER: minor upgrade patch c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp is not applicable.
MSI (c) (60:68) [16:19:02:646]: SequencePatches returns success.
MSI (c) (60:68) [16:19:02:646]: Final Patch Application Order:
MSI (c) (60:68) [16:19:02:646]: Other Patches:
MSI (c) (60:68) [16:19:02:646]: Unknown\Absent: {71E3B59E-4380-4145-B1A5-20ECDC68FEF7} - c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp
The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade.

    
por Christopher Kelly 01.03.2017 / 21:48

1 resposta

0

OK para qualquer outra pessoa que tenha este requisito, eu tive que fazer isso em 2 estágios

  1. msiexec / a "c: \ temp \ mymsi.msi" /qb TARGETDIR="c: \ temp2" REINSTALLMODE="amus"
  2. msiexec / a " c: \ temp2 \ mymsi.msi " / qb TARGETDIR="c: \ temp2" REINSTALLMODE="amus" PATCH="c: \ temp \ mypatch.msp"

OBSERVE que o segundo passo é usar o NEW msi do passo 1. Eu não consegui fazer isso funcionar em um único passo.

    
por 02.03.2017 / 19:30