是否可以使用 wix bootstrapper 自动下载先决条件
Posted
技术标签:
【中文标题】是否可以使用 wix bootstrapper 自动下载先决条件【英文标题】:is it possible to automatically download Prerequisites using wix bootstrapper 【发布时间】:2014-05-28 11:08:01 【问题描述】:我已经使用 wix 创建了一个设置,甚至还创建了自定义对话框。现在我需要 mySetup 来自动下载我的应用程序的先决条件。似乎只能通过引导程序完成。我什至也创建了一个引导程序文件,但是我不想在引导程序中附加 Prerequisites setup (ie) .exe 文件来安装 Prerequisites 。相反,我需要 直接从 Web 下载并需要自动安装当我的设置运行时。
wix 可以吗?我是 wix 新手,如果可能的话,请分享一些来源??
提前致谢
【问题讨论】:
【参考方案1】:只需使用 SourceFile 即可避免任何不便。
<ExePackage
Id="InstallJava"
DetectCondition='NOT Installed AND JAVACURRENTVERSION>="1.6"'
InstallCondition='NOT VersionNT64'
SourceFile="..\dep\jre-7u55-windows-i586.exe"
InstallCommand='/s'
Compressed="no"
Permanent="yes"
PerMachine="yes"
Vital="no"
DownloadUrl="http://javadl.sun.com/webapps/download/AutoDL?BundleId=86895"
/>
下载 prereq.exe 并使用 SourceFile 属性来引用它。 WiX会自动计算Hashcode等
但如果您更倾向于使用 RemotePayLoad,请使用 heat.exe 来收集这些数据。
<wix-folder>/bin/heat payload d:\prereq.exe -out d:\remote.xml
【讨论】:
自动下载的文件会在哪个位置? 你能告诉我锄头用热吗 @user3611781 下载您想要获取的包(如 prereq.exe)。然后使用我在回答中提到的命令。您可以在 WIX 安装文件夹 C:\Program Files (x86)\WiX Toolset v3.7 下找到 heat.exe。在文本编辑器中打开 remote.xml 以获取 RemotePayload 信息。 @user3611781 WIX 将自动下载并安装先决条件。您不必关心下载位置。您可以使用 InstallCommand 来传递其他参数。【参考方案2】:EXEPACKAGE - 您可以使用 DownloadUrl 属性。
DownloadUrl - 用于下载包的 URL。以下 支持替换:0 被包 ID 替换。 1 是 替换为有效负载 ID。 2 被负载文件名替换。
RemotePayload - 描述有关远程文件有效负载的信息 在构建捆绑包时不可用。父母 使用时必须指定DownloadUrl,不能指定SourceFile 这个元素。
例如:
<PackageGroup
Id="Netfx4Full">
<ExePackage
Id="Netfx4Full"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193/dotNetFx40_Full_x86_x64.exe" >
<RemotePayload
ProductName="dotNetFx40_Full_x86_x64.exe"
Description="Dotnet 4.0"
Size="3961856"
Version="4.0.5022.0" />
</ExePackage>
</PackageGroup>
【讨论】:
似乎在这里我们还需要在我们的解决方案中添加源文件(即)所需的 .exe 文件。?? 如果系统中已经安装了所需的设置意味着会发生什么。? @以赛亚4110 在 ExePackage 元素中添加 InstallCondition 属性。 我真的是 wix 新手?你能指导我吗? 所需的设置显然会创建一些注册表项,对吗?在安装条件中检查这些注册表项。如果它存在,则不需要安装,否则您需要。我正在尽我所能地指导你,我认为你有足够的信息来解决这个问题。以上是关于是否可以使用 wix bootstrapper 自动下载先决条件的主要内容,如果未能解决你的问题,请参考以下文章
WiX Burn Bootstrapper 不调用 OnDetectRelatedBundle
在 WIX Bootstrapper 中检查 .NET 4.0 框架时遇到问题
如何通过 Wix Bootstrapper 在修改模式下添加包?