【发布时间】:2017-04-10 17:15:29
【问题描述】:
我没有修补/升级安装的经验。
我们有一个 wix 包设置,其中包含一个标准(wix 创建的)msi,以这种方式添加到包中:
<MsiPackage SourceFile="MySetup.msi" Id="MySetupId" Cache="yes" DisplayInternalUI="no" SuppressSignatureVerification ="yes" Visible="no" >
所以在添加/删除软件部分显示的是捆绑包,而不是 msi 本身。
msi 和捆绑包都已签名。
目前我们发布的版本是“2.1.0.BuildNumber”。
bundle.wxs 有升级代码 A msi有产品代码B和升级代码C。
不幸的是,这个版本包含一个普通的错误,但我们不想仅仅因为这个错误而发布“v2.2.0.BuildNumber”,而是“2.1.1.BuildNumber”,所以我们需要一个补丁。
这里的最佳做法是什么?我们是否应该只创建一个像这里描述的 msp 文件
http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html?
这会破坏 bundle 和 msi 之间的关系吗?这个补丁会显示在添加/删除程序部分吗?
或者是否有可能将捆绑包用于补丁?
目标是,我们的客户无需卸载旧版本即可安装补丁,但可以使用以前发布的捆绑包卸载整个范围。
【问题讨论】:
-
您创建补丁而不是常规软件包的动机是什么?在 CD/DVD 和缓慢的互联网时代,其动机是补丁只包含更改并且比主包小得多。您的产品是否仍然存在问题?
-
另一个动机是软件包版本保持不变。但是你建议改一下:主包2.2.0,新包2.2.1是新的包版本,可以作为新版本的包安装,而不是补丁。
-
最后,如果用户可以从 ARP 卸载当前安装的版本或使用最新的、当前安装的安装包,“可以使用以前发布的捆绑包进行卸载”有些人为。
-
我们的安装包含几个包,如 html 文件和一些保持不变的 zip。这就是为什么我们只想部署我们更改的二进制文件,基本上是一些 dll。版本号的增加不是强制性的,但现在我们的产品版本与我们的二进制文件的构建版本相同。我想我不明白你的最后一点。在 ARP 中,现在只有捆绑包,而不是真正安装的 msi 可见。因此,当补丁被应用时,删除整个文件的唯一方法是使用包的 ARP 条目或 bundle.exe。
标签: installation wix windows-installer bundle patch