无需安装 MSI,即可将 MSP 应用于 MSI

无需安装 MSI,即可将 MSP 应用于 MSI

我正在生成依赖项及其各自版本的存储库。我可以使用以下方法提取 MSI

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

这部分工作正常,但是当我去应用 MSP 时,我无法让它工作。

我努力了

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

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

  • msiexec /a “C:\extracted\MyMSI.msi” /p “c:\temp\MyPatch.msp”

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

  • 其他几个成功

我不断收到消息

错误信息

该消息是有意义的,因为我还没有真正安装 MSI,但我需要从补丁中获取更新的文件。

我应该注意到,这是在大约 60 msi 的循环中运行的,所以我希望尽量减少手动步骤。

更新:以下是日志中的条目

MSI (c) (60:68) [16:19:02:645]: SequencePatches 启动。产品代码:{1B7D2B53-5A7D-4227-9441-BDB9F1047672},产品版本:15.1.15.28,升级代码:{2DB5D3D4-42AF-49D4-B6B5-B4F9540DA781},产品语言 1033
MSI (c) (60:68) [16:19:02:645]: PATCH SEQUENCER:验证小升级补丁 c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp 是否适用于产品代码:{1B7D2B53-5A7D-4227-9441-BDB9F1047672}、产品版本:15.1.15.28、产品语言 1033 和升级代码:{2DB5D3D4-42AF-49D4-B6B5-B4F9540DA781}
MSI (c) (60:68) [16:19:02:646]: PATCH SEQUENCER: 小升级补丁 c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp 不适用。
MSI (c) (60:68) [16:19:02:646]: SequencePatches 返回成功。
MSI (c) (60:68) [16:19:02:646]: 最终补丁应用顺序:
MSI (c) (60:68) [16:19:02:646]: 其他补丁:
MSI (c) (60:68) [16:19:02:646]: 未知\缺失:{71E3B59E-4380-4145-B1A5-20ECDC68FEF7} - c:\ININ\IceLibSDK_32bit_2015_R1_Patch6.msp
Windows Installer 服务无法安装升级,因为要升级的程序可能丢失,或者升级可能会更新该程序的不同版本。请验证要升级的程序是否存在于您的计算机上,并且您有正确的升级。

答案1

对于遇到此要求的其他人,我必须分两个阶段完成此操作

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

注意,第 2 步使用第 1 步中的新 msi。我无法通过一个步骤让它工作。

相关内容