3

Я создаю хранилище зависимостей и их соответствующих версий. Я могу извлечь MSI, используя

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

Эта часть работает нормально, но когда я иду применять MSP, я не могу заставить его работать.

я пытался

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

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

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

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

  • несколько других с успехом

Я продолжаю получать сообщение

Сообщение об ошибке

Это сообщение имеет смысл, потому что я не установил MSI, но мне нужно получить обновленные файлы из патча.

Я должен отметить, что это выполняется в цикле ок. 60 мс, поэтому я бы предпочел минимальные ручные шаги.

ОБНОВЛЕНИЕ: Ниже приведены записи из журнала

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.

1 ответ1

0

ОК для всех, кто сталкивается с этим требованием, я должен был сделать это в 2 этапа

  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"

ПРИМЕЧАНИЕ 2-й шаг - использование NEW msi из шага 1. Я не мог заставить его работать за один шаг.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .