【问题标题】:Burn ExePackage unable to find msi刻录ExePackage找不到msi
【发布时间】:2013-07-25 09:29:51
【问题描述】:

我有一个安装项目,它在 wixproj 中包含 BootstrapperFile 项目,并使用 GenerateBootstrapper 生成一个 setup.exe,它引导 6 个项目(例如 .NET 4.0、Adobe Acrobat Reader、Adobe Flash Player)。

此 setup.exe 可自行运行。我可以卸载 Adob​​e Acrobat Reader,然后使用 setup.exe 重新安装它。 OutDir 中的文件是 Folder1Folder2 ... Folder6 用于先决条件,然后是 setup.msi 和 setup.exe。

我有另一个生成 App.msi 的安装项目。这个 App.msi 可以自行安装。

我现在想按以下顺序链接上述两项:setup.exe -> App.msi

我可以单独链接 App.msi 并且它可以工作。

链元素如下所示:

<Chain>
      <ExePackage SourceFile="$(var.SetupPrereqs.TargetDir)setup.exe" Cache="no" ></ExePackage>
      <MsiPackage SourceFile="$(var.Setup.TargetDir)App.msi" ForcePerMachine="yes" Cache="no"></MsiPackage>
    </Chain>

但是我无法链接 ExePackage。我收到以下错误:

[0984:2360][2013-07-25T11:19:34]e000: Error 0x80070643: Process returned error: 0x643
[0984:2360][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to execute EXE package.
[0FD8:2240][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to configure per-machine EXE package.
[0FD8:2240][2013-07-25T11:19:34]i319: Applied execute package: setup.exe, result: 0x80070643, restart: None
[0FD8:2240][2013-07-25T11:19:34]e000: Error 0x80070643: Failed to execute EXE package.

VS 日志执行了以下操作:

Line 19: 'Adobe Reader XI' RunCheck result: No Install Needed
Line 37: 'Windows Media Player 11' RunCheck result: No Install Needed
Line 70: 'Windows Installer 4.5' RunCheck result: No Install Needed
Line 92: 'Adobe Flash Player 11 ActiveX' RunCheck result: No Install Needed
Line 106: 'Microsoft .NET Framework 4 (x86 and x64)' RunCheck result: No Install Needed
Line 116: 'Microsoft Visual Studio 2010 Report Viewer' RunCheck result: No Install Needed

这里失败了: 启动应用程序。 错误:无法找到应用程序文件“setup.msi”。

如何确保setup.exe最终找到setup.msi?

我实际上不需要运行 setup.msi。如果控制权回到链上就足够了。

【问题讨论】:

  • 0x643=1603 "A fatal error occurred during installation" 我不确定 VS 引导程序是否会自己创建该错误代码,或者它是否只是从它的一个包中传递它。在任何情况下,VS 引导程序都应该创建自己的日志。

标签: wix installation bootstrapper burn


【解决方案1】:

在 ExePackage 中添加 msi 文件作为 Payload 元素解决了这个问题。

<ExePackage SourceFile="$(var.SetupPrereqs.TargetDir)setup.exe">
        <Payload SourceFile="$(var.SetupPrereqs.TargetDir)setup.msi"></Payload>
</ExePackage>

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多