我有一个在 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 中为多个实例安装生成补丁?