wix - 如何创建只有下载链接的 Wix Exepackage

标签 wix burn wix3.8

我正在尝试在我的包中创建一个 ExePackage [使用 DownloadUrl 属性],用于下载 Sql Express 2014 并使用以下代码安装它

<ExePackage Id="Sql2014Express"
    DisplayName="SQL Server 2014 Express"
    Cache="no"
    Compressed="no"
    PerMachine="yes"
    Permanent="no"
    Vital="yes"
    Name="SQLEXPRWT_x64_ENU.exe"
    DownloadUrl="http://download.microsoft.com/download/E/A/E/EAE6F7FC-767A-4038-A954-49B8B05D04EB/ExpressAndTools%2064BIT/SQLEXPRWT_x64_ENU.exe"
    InstallCommand="/ACTION=Install /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /SECURITYMODE=SQL [SqlVariable] /TCPENABLED=1 /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /SQLSVCSTARTUPTYPE=Auto /SQLSYSADMINACCOUNTS=BUILTIN\Administrators /ADDCURRENTUSERASSQLADMIN=FALSE /Q /HIDECONSOLE /SkipRules=RebootRequiredCheck /IAcceptSQLServerLicenseTerms"
    UninstallCommand="/Action=Uninstall /INSTANCENAME=$(var.InstanceName) /FEATURES=SQL /Q /HIDECONSOLE"
    DetectCondition="SqlInstanceFound"
    InstallCondition="$(var.ServerInstall)">
    <ExitCode Value ="3010" Behavior="forceReboot" />
  </ExePackage>

当我尝试构建安装程序包时,我收到以下错误......

Error   2   The system cannot find the file 'SourceDir\SQLEXPRWT_x64_ENU.exe'.  

我可以将 SourceFile 属性设置为本地文件并将其包含在我的安装中,但我希望不必使用安装程序移动 800mb 以上的文件。

最佳答案

如果您将 bundle 设置为 Compressed=no它不会在您的最终包中包含源文件。您收到“找不到文件”的原因是因为在构建安装程序时,它需要包 EXE 文件的本地版本才能从中获取信息。如果你想构建一个只有下载URL的项目,你需要指定 RemotePayload元素,并提供一些有关远程包的更多定义信息。

这将允许您构建安装包,而无需在计算机上拥有源文件,但您需要确保准确描述您的有效负载,否则安装将失败。

在您的ExePackage上元素,请确保包含 Name属性,这是 SourceFile 旁边的必需属性之一,但是SourceFile RemotePayload 不允许。您的示例包含它,所以您应该没问题。

包括<RemotePayload>元素作为 ExePackage 的子元素像这样:

<RemotePayload Description="MyRemoteApp" ProductName="MyProductName" Size="size-in-bytes" Version="1.1.1.1" Hash="SHA-1-checksum-here"/>

其中所需的所有信息都是特定包的属性。 如果这不是一个选项,您将需要确保源文件在构建时在本地可用,但确保它未压缩,以便用户可以安装并从您的 URL 下载有效负载。

请参阅RemotePayload引用以获取更多信息。

关于wix - 如何创建只有下载链接的 Wix Exepackage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26850462/

相关文章:

.net - 为什么 WiX Burn 不重新启动并恢复执行?

installation - 使用 WiX 和 MSI 进行多产品共享组件设置?

Wix 工具集 : complete cleanup after "disallowing uninstallation of component since another client exists"

windows-7 - Windows Installer只是将我的安装更改为背后的ALLUSERS = 1

JavaFX 应用程序更新无需管理员权限

wix - 应如何为 Burn bundle ExePackage 指定 DetectCondition?

installation - Wix - 该目录位于用户配置文件中,但未在“RemoveFile”表中列出

wix - 如何在不弄乱 UI 序列的情况下在 welcomeDlg 之前插入自定义对话框

wix - WIX 中的条件属性失败导致整个 MSI 作业失败

installation - 停止 WIX 中的服务并在安装完成后启动