Wix补丁创建

Wix补丁创建,wix,patch,wix3.6,Wix,Patch,Wix3.6,我已经使用wix创建了安装程序。现在我想对其进行修补。我成功创建了修补程序1,它将示例exe更改为另一个exe,并将产品版本号从1.0.0.0增加到1.0.0.1。到现在为止,一切正常。 现在我想要第二个补丁,它会做一些小的改变。只有在安装了修补程序1并将版本更改为1.0.0.2时,才应安装此修补程序。 我指的是本教程 现在的问题是,我的第二个修补程序正在做它应该做的更改。但即使没有安装修补程序1,它也正在安装。 注: 1> 所有3个基线中的产品代码/升级代码都相同。 2> 第一、第二和第三基线

我已经使用wix创建了安装程序。现在我想对其进行修补。我成功创建了修补程序1,它将示例exe更改为另一个exe,并将产品版本号从1.0.0.0增加到1.0.0.1。到现在为止,一切正常。
现在我想要第二个补丁,它会做一些小的改变。只有在安装了修补程序1并将版本更改为1.0.0.2时,才应安装此修补程序。
我指的是本教程
现在的问题是,我的第二个修补程序正在做它应该做的更改。但即使没有安装修补程序1,它也正在安装。
注:
1> 所有3个基线中的产品代码/升级代码都相同。
2> 第一、第二和第三基线的版本号不同,就像第一基线its 1.0.0.0、第二基线its 1.0.0.1和第三基线its 1.0.0.2一样

补丁1代码:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Patch AllowRemoval="yes" Manufacturer="NSS" MoreInfoURL="www.abcdxyz.com"
DisplayName="NSS 1.0.0.1" Description="Small Update Patch" Classification="Update">

<Media Id='5000' Cabinet='Sample.cab'>
<PatchBaseline Id='Sample'/>
</Media>

<PatchFamily Id='SamplePatchFamily' Version='1.0.0.1'>
<PropertyRef Id="ProductVersion"/>
<ComponentRef Id='NSSTestAPP'/>
</PatchFamily>

</Patch>
</Wix>

修补程序2代码:

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Patch AllowRemoval="yes" Manufacturer="NSS" MoreInfoURL="www.abcdxyz.com"
DisplayName="NSS 1.0.0.2" Description="Small Update Patch" Classification="Update">

<Media Id='5000' Cabinet='Sample.cab'>
<PatchBaseline Id='Sample'/>
</Media>

<PatchFamily Id='SamplePatchFamily' Version='1.0.0.2'>
<PropertyRef Id="ProductVersion"/>
  <ComponentRef Id = 'NSSTestAPP'/>
  <ComponentRef Id = 'TestDll'/>
</PatchFamily>


</Patch>
</Wix>


请帮助解决问题。

另一个选项是对1.0.0.0和1.0.0.2运行torch,并设置patchFamily属性superse=“yes”。(假设.1代码也在.2版本中)这将在.2修补程序中包括.1文件。如果安装了.1修补程序,它将被.2取代,如果.1没有安装,那也没关系,因为.2已经包含了它。

ya这是正确的。您的方法也会像我的修补程序一样执行。但是我希望修补程序.2依赖于修补程序1。无论哪种方法,在这两种情况下都需要进行更改。您的方法不会解决我的确切问题。修补程序依赖性在1.0.1和1.0.2. 但我希望它能与1.0.0.1和1.0.0.2一起工作。我认为这是不可能的,因为windows安装程序只支持major.minor.build。所以1.0.0.1和1.0.0.2都是相同的版本