2

我用谷歌搜索了很多,但关于我的问题的信息很少。

简短的问题是“假设您有目标图像(.msi),即已更改二进制文件的列表,但您没有升级图像。如何根据这些输入制作补丁?” .


详细描述为:
目前,我们使用 TFS 作为源代码控制。并且每次制作新的 MSI 时,我们都会首先增加所有项目的 AssemblyFileVersion,无论项目是否真的改变了。当不需要制作补丁时,这很好。
但是,实际上,我们现在确实有制作补丁的要求。我曾尝试使用 Purely WiX 或 Patch Creation Properties 创建补丁,但当我们直接使用这些 MSI 时,几乎所有项目都会被视为已更改。

所以如果我有三个输入:

  1. 目标图像(.msi)
  2. 真正改变的二进制文件列表
  3. 升级映像(所有二进制文件的文件版本都递增)<--- 此输入可能无用

如何使用上述输入来创建补丁?

提前致谢。

4

2 回答 2

0

制作补丁时,您仍然可以使用升级后的 MSI 版本。我不知道您可能需要做的所有 WiX 事情,但我已经通过在 TargetImages 表中设置 IgnoreMissingSrcFiles 完成了您想要做的事情:

http://msdn.microsoft.com/en-us/library/aa372066(v=vs.85).aspx

只需删除您不想修补的所有文件。无论如何,您都使用管理映像来创建补丁,因此您将拥有两个带有 MSI 文件的管理映像,并且只有您想要修补的文件。

于 2014-11-10T17:56:01.590 回答
0

作为菲尔斯回答的替代方案,您可以为补丁创意属性文件中唯一增加的文件添加一个忽略开关。

<UpgradeFile File="YourFileID" Ignore="yes" />

http://wixtoolset.org/documentation/manual/v3/xsd/wix/upgradefile.html

根据要忽略的文件数量可能会使 Phils 方法更容易。虽然如果您获得文件表 id 列表(在 orca 中导出表并在 excel 中编辑,将 A3 复制下来)并从您真正更改的列表中删除所有 id,然后在每个 id 周围添加 xml ..它不应该需要很长时间。

于 2014-11-13T16:19:58.460 回答