我有一个在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中,我尝试通过“修补程序设计”选项卡将转换中的新产品代码添加到“目标产品代码列表”中。执行此操作会导致错误输出错误:
"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方法(pre WiX 3.0),并且只能在InstallShield中获得。
到目前为止,我一直主要参考此页面以获取我的答案:http://ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html
TL; DR:如何使用(最好)InstallShield或在WiX中为多个实例安装生成补丁?
答案 0 :(得分:5)
我通过完全放弃InstallShield解决了我自己的问题。我没有将我的InstallShield最终msi转换为WiX,而是在纯WiX中重新创建了我的项目。 这样做可以让我安装多个实例,并对它们进行修补。
遗憾的是,我无法弄清楚如何让它通过InstallShield工作。