【问题标题】:wix patch PYRO0103 : The system cannot find the filewix patch PYRO0103 : 系统找不到文件
【发布时间】:2014-06-15 00:37:51
【问题描述】:

我已尝试为我的应用程序构建补丁。我需要替换两个文件,仅此而已。使用引导程序使文件就位,但是当卸载引导程序时,文件消失了,并且没有被旧文件替换(当然)。我将 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 不包括图像。

<?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>

我能做什么?

我在谷歌搜索时发现了这个:http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/error-PYRO0103-The-system-cannot-find-the-file-UI-Icons-appicon-ico-if-appicon-ico-is-in-my-latest-wb-td4600799.html

这句话可能有帮助,但我不明白,谷歌搜索没有给我一个很好的例子:

"将原来的命令行更改为 light.exe,方法是更改 将 .msi 文件扩展为 .wixout 并添加这两个参数 点亮:-xo -b"

问候, 安德烈亚斯

【问题讨论】:

    标签: windows wix windows-installer patch pyro


    【解决方案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
    

    使用新旧安装程序执行此操作。

    现在您可以将 torch 与 .wixpdb 文件一起使用来创建您的 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
    

    【讨论】:

    • 我还没有解决这个问题,但自 3 月以来它也没有解决这个问题。我认为你在正确的轨道上。
    • 这个方法你试过了吗?如果是并且仍然无法正常工作,那么错误是否仍然相同?这就是它为我解决问题的方式,所以我认为它也应该适用于您的问题。
    • 据我记得我确实让它工作(ish),可能是通过使用你的方法。但是安装程序然后告诉我这些文件之间没有任何区别。我唯一改变的是两个 dll 文件。我用两个新的替换了旧的。我已经粘贴了 dll 文件代码。 ""
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多