【发布时间】:2012-03-17 07:48:57
【问题描述】:
我有一个在 InstallShield 12 中构建的项目。它是一个需要多次安装的 Web 应用程序,并且需要修补这些安装。
我可以在 WiX 和 InstallShield 中创建转换和补丁。
当我尝试从 InstallShield 修补转换后的安装时,我收到错误:
"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch 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 patch."
在 InstallShield 中,我尝试通过 Patch Design 选项卡将转换中的新产品代码添加到“目标产品代码列表”。这样做会导致补丁创建出错:
"ERROR: At least one of the GUIDs '{ORIGINAL-GUID},{TRANSFORM-GUID}' defined in the ListOfTargetProductCodes property in the Properties table of the .pcp file is invalid."
在 WiX (3.5) 中,我使用 dark.exe 将我的项目从 InstallShield 转换为 WiX。我已经取得了足够的进展,可以为转换安装补丁,但我收到了警告:
"Patch.wxs(11) : warning PYRO1079 : The cabinet 'Data1.cab' does not contain any files."
这是一个问题,因为我试图在补丁中运行一个SQL脚本,但是补丁并没有将我的sql文件插入到cab中。
我还通过 WiX 尝试了 .pcp 方法(WiX 3.0 之前的版本),但只达到了我在 InstallShield 中所达到的程度。
到目前为止,我主要参考此页面来获取答案:http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html
TL;DR:如何使用(最好)InstallShield 或在 WiX 中为多个实例安装生成补丁?
【问题讨论】:
-
不看代码就很难猜出你的补丁出了什么问题。如果您共享一个sn-p,它可能会更容易。如果您可以将问题缩小到一些简短的样本而不是一个真正的解决方案,那也很棒
标签: wix windows-installer installshield msp msi-patch