我已经尝试为我的应用程序构建补丁。我需要更换两个文件,仅此而已。使用引导程序将文件放在适当的位置,但是当卸载引导程序时,文件已经消失,而不是由旧文件替换(当然)。我将Keypath = yes“添加到我的应用程序包(包括旧的和新的)中,希望能解决我的问题,但不会。
我一直在关注本教程:http://wix.tramontana.co.hu/tutorial/upgrades-and-modularization/patchwork
这是我从命令行运行时遇到的问题:
C:\Program Files (x86)\WiX Toolset v3.8\bin>pyro.exe C:\Work\Dev\App\
Patch\Patch.wixmsp -out Patch.msp -t Sample C:\\Work\Dev\App\Patch\dif
f.wixmst
结果如下:
C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(181) :
error PYRO0103 : The system cannot find the file '..\App\3.6.2\Manager\Image
s\sort_down_small.png'.
C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(182) :
error PYRO0103 : The system cannot find the file '..\App\3.6.2\Manager\Image
s\sort_up_small.png'.
C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(182) :
error PYRO0103 : The system cannot find the file '..\App\3.6.2\Manager\Image
s\sort_up_small.png'.
............
有趣的是我的patch.wxs不包括Images。
<?xml version='1.0' encoding='UTF-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Patch AllowRemoval="yes" Manufacturer="Company" MoreInfoURL="www.Company.com"
DisplayName="App 3.6.2 patch" Description="Small Update Patch" Classification="Update">
<Media Id='5000' Cabinet='Sample.cab'>
<PatchBaseline Id='Sample'/>
</Media>
<PatchFamily Id='SamplePatchFamily' Version='1.5.0.0' Supersede='yes'>
<ComponentRef Id="Assemblies"/>
</PatchFamily>
我该怎么办?
这句话可能会有所帮助,但我不明白,谷歌搜索没有给我一个好的检查:
“通过更改,将原始命令行更改为light.exe 将.msi文件扩展为.wixout并添加这两个参数 点亮:-xo -b“
此致 安德烈亚斯
答案 0 :(得分:1)
创建MSI安装程序时必须更改参数。
说你到目前为止创建了安装程序Installer.msi:
candle Installer.wxs -out Installer.wixobj
light Installer.wixobj -out Installer.msi
您必须将其更改为此
candle Installer.wxs -out Installer.wixobj
light -bf -xo Installer.wixobj -out Installer.wixout
light Installer.wixout -out Installer.msi
使用旧版和新版安装程序执行此操作。
现在你可以使用带有.wixpdb文件的torch来创建你的diff.wixmst
torch -p -xi (PathToOldInstaller)\Installer.wixpdb (PathToNewInstaller)\Installer.wixpdb -out diff.wixmst
最后创建补丁
candle patch.wxs
light patch.wixobj
pyro patch.wixmsp -out patch.msp -t Sample diff.wixmst