【问题标题】:Patching Multiple Instance Installs with either InstallShield or WiX使用 InstallShield 或 WiX 修补多个实例安装
【发布时间】: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


【解决方案1】:

我通过完全放弃 InstallShield 解决了我自己的问题。我没有将我的 InstallShield 最终 msi 转换为 WiX,而是在纯 WiX 中重新创建了我的项目。 这样做让我可以安装多个实例,并为它们打补丁。

很遗憾,我无法弄清楚如何通过 InstallShield 让它工作。

【讨论】:

  • 您可以发布您的 WiX 解决方案吗?至少最重要的部分?这些可能对这里的其他用户也很有趣......在此先感谢!
  • 我在 WiX 中重新创建项目时引用了以下页面。我认为这对您更有帮助,而不是我发布我的具体项目。 codeproject.com/Articles/115036/…
  • 使用过 MSI 的人可能会发现,使用 dark.exe 反编译现有的 MSI 以生成可以清理的 WIX XML 源文件可以显着简化转换。不过,它确实需要 Wix 的基本工作知识。
  • dark.exe 是 Wix 工具之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
相关资源
最近更新 更多