在WiX自定义托管引导程序应用程序中下载安装包的正确方法是什么
本文关键字:安装 是什么 方法 下载 自定义 WiX 应用程序 引导程序 | 更新日期: 2023-09-27 17:56:45
我写了一个我一直在使用的WiX自定义MBA,它嵌入了安装所需的所有安装包(msis,cabs和exes)。但是,我现在想制作一个轻量级的Web引导程序,它将下载需要安装的软件包。我以为你会通过底层的WiX引导程序引擎免费获得它,但我想我错了。
我尝试订阅 ResolveSource 事件以获取包的下载 URL 并将其下载到本地源位置,但此时似乎为时已晚,因为我的安装失败并显示错误"无法解析文件源:"(即使下载成功)。
我尝试过的示例:
private void OnResolveSource(object sender, ResolveSourceEventArgs e)
{
string localSource = e.LocalSource;
string downloadSource = e.DownloadSource;
if (!File.Exists(localSource) && !string.IsNullOrEmpty(downloadSource))
{
try
{
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(e.DownloadSource, e.LocalSource);
}
}
catch (ArgumentNullException ex)
{
e.Result = Result.Error;
}
catch (WebException ex)
{
e.Result = Result.Error;
}
}
}
感谢 Rob Mensching 在 wix-users 邮件列表中回答这个问题:
确保提供的 URL 包(创作是最简单的,但您可以 以编程方式设置它们),然后从 解析源调用。
我按如下方式编辑了我的代码:
private void OnResolveSource(object sender, ResolveSourceEventArgs e)
{
if (!File.Exists(e.LocalSource) && !string.IsNullOrEmpty(e.DownloadSource))
e.Result = Result.Download;
}
将结果设置为 Result.Download
指示引导程序引擎下载包。无需尝试自己下载文件。