使用WiX,如何在初始URL无法下载时下载依赖项

时间:2016-02-19 20:09:20

标签: wix windows-installer

我想为我的WiX捆绑包提供一个备用下载URL以获取依赖关系。我无法在这种情况下追踪文档,因此我甚至不知道是否可能在一个hackish Custom Action解决方法之外。现在,当任何尝试下载失败时,安装将按预期失败。如果初始尝试失败直到它成功或者硬件失败而没有任何工作,我希望它只是尝试使用公共或内部镜像的下一个URL。我已经实现了正常的依赖包。我只是不确定从这里去哪里实现这个设计。如果可能的话,我想在自定义操作之外执行此操作。

当前代码示例:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <Fragment>
<!-- Check registry keys for Microsoft Visual C++ 2005 Redistributable -->
    <util:RegistrySearch Root="HKLM"
                         Key="SOFTWARE\Classes\Installer\Products\1af2a8da7e60d0b429d7e6453b3d0182"
                         Result="exists"
                         Variable="MVC2005Present_x64"
                         Win64="yes"/>

<!-- Package to deploy Microsoft Visual C++ 2005 Redistributable (x64) -->
      <ExePackage Id="MVC2005Exe_x64"
                  Name="Microsoft Visual C++ 2005 Redistributable Package (x64)"
                  Cache="no"
                  Compressed="no"
                  PerMachine="yes"
                  DownloadUrl="https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.EXE"
                  Permanent="yes"
          InstallCommand="/q"
          RepairCommand="/q"
          DetectCondition="MVC2005Present_x64"
          InstallCondition="DeployDependencies = 1">
        <RemotePayload CertificatePublicKey="5C499B10F7EF186DC729991A262AB52066423909"
                       CertificateThumbprint="93859EBF98AFDEB488CCFA263899640E81BC49F1"
                       Description="Microsoft Visual C++ 2005 Redistributable (x64) Setup"
                       Hash="EE916012783024DAC67FC606457377932C826F05"
                       ProductName="Microsoft Visual C++ 2005 Redistributable (x64)"
                       Size="3175832"
                       Version="6.0.2900.2180" />
        <ExitCode Behavior="scheduleReboot" Value="1641" />
        <ExitCode Behavior="scheduleReboot" Value="3010" />
      </ExePackage>
    </Fragment>
  </Wix>

enter image description here

1 个答案:

答案 0 :(得分:2)

Burn支持每个有效负载一个下载URL。自定义引导程序应用程序获得OnResolveSource回调,当捆绑包中创建的那个失败时,它可以提供备用下载位置。