我可以在没有升级映像的情况下生成补丁(.msp)(。msi)

时间:2014-11-10 17:39:41

标签: wix windows-installer msp

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

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


详细说明如下:
目前,我们使用TFS作为源控件。每次创建一个新的MSI时,无论项目是否真的改变,我们都会增加所有项目的AssemblyFileVersion。当没有要求补丁时,这很好。
但是,实际上,我们现在需要制作补丁。我尝试使用Purely WiX或Patch Creation Properties创建补丁,但是当我们直接使用这些MSI时,几乎所有项目都会被视为已更改。

所以,如果我有三个输入:

  1. 目标图像(.msi)
  2. 真正更改的二进制文件列表
  3. 升级图片(所有二进制文件的文件版本递增)< ---此输入可能无用
  4. 如何使用上述输入创建补丁?

    提前致谢。

2 个答案:

答案 0 :(得分:0)

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

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

并删除您不想修补的所有文件。无论如何,您都可以使用管理员映像来创建补丁,因此您只需拥有两个管理映像,其中包含MSI文件和仅要修补的文件。

答案 1 :(得分:0)

替代Phils答案,您可以在修补程序广告素材属性文件中为仅增加的文件添加忽略开关。

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

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

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