WIX-是否可以为多个MSI创建语言无关的修补程序?
我们为不同的语言提供了多个MSI,因此每个MSI都有自己的产品代码和升级代码。使用英文MSI,我们在中使用Aaron的方法创建了一个补丁,例如蜡烛/灯光/火炬/火焰 使用以下Patch.wxs:WIX-是否可以为多个MSI创建语言无关的修补程序?,wix,windows-installer,patch,Wix,Windows Installer,Patch,我们为不同的语言提供了多个MSI,因此每个MSI都有自己的产品代码和升级代码。使用英文MSI,我们在中使用Aaron的方法创建了一个补丁,例如蜡烛/灯光/火炬/火焰 使用以下Patch.wxs: <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Patch AllowRemoval="yes"
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Patch
AllowRemoval="yes"
Manufacturer="xxx"
MoreInfoURL="xxx"
DisplayName="MyProduct First Patch"
Description="My Product First Patch"
Classification="Update Rollup"
>
<Media Id="5000" Cabinet="RTM.cab" >
<PatchBaseline Id="RTM"/>
</Media>
<PatchFamilyRef Id="PatchFamilyRollup"/>
</Patch>
<Fragment>
<PatchFamily Id='PatchFamilyRollup' Version='1.1.1.1' Supersede='yes'>
...
...
但是,当我们在安装了非英语MSI的计算机上应用此修补程序时,会出现以下错误:
Windows Installer服务无法安装升级修补程序,因为要升级的程序可能已丢失,或者升级修补程序可能会更新程序的其他版本。请确认要升级的程序存在于您的计算机上,并且您有正确的升级修补程序
所以我的问题是,,
是否可以创建一个可以在任何语言上使用的修补程序(MSP)?
如果是,需要做什么 我认为您应该尝试使用元素,它是PatchBaseline的子元素,以及torch.exe命令行的验证标志。正确的位组合将允许您安装修补程序 谢谢严给了我一个正确的方向。我使用“Validate”元素和“torch”命令玩了好几个小时,但是我得到了相同的错误。然后我的同事给我看了“TargetProductCode”元素。经过几次尝试,我终于让它工作了,尽管这个解决方案不是纯语言中立的。我找到的答案是“Validate”元素和“TargetProductCode”元素的组合。我张贴我自己的答案,以便有人可以从中受益
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Patch
AllowRemoval="yes"
Manufacturer="xxx"
MoreInfoURL="xxx"
DisplayName="MyProduct First Patch"
Description="My Product First Patch"
Classification="Update Rollup"
>
<Media Id="5000" Cabinet="RTM.cab">
<PatchBaseline Id="RTM" >
<Validate ProductId='no' ProductLanguage='no' ProductVersionOperator='LesserOrEqual' UpgradeCode='no' />
</PatchBaseline>
</Media>
<TargetProductCodes Replace='yes'>
<!-- list all language specific ProductCode here. -->
<TargetProductCode Id='{xxxxx}' /> <!-- ProductCode for English -->
<TargetProductCode Id='{yyyyy}' /> <!-- ProductCode for French -->
</TargetProductCodes>
<PatchFamilyRef Id="PatchFamilyRollup"/>
</Patch>
...
...