1

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

此 setup.exe 可自行运行。我可以卸载 Adob​​e Acrobat Reader,然后使用 setup.exe 重新安装它。中的文件OutDirFolder1, Folder2...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 来运行。如果控制权回到链上就足够了。

4

1 回答 1

1

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

<ExePackage SourceFile="$(var.SetupPrereqs.TargetDir)setup.exe">
        <Payload SourceFile="$(var.SetupPrereqs.TargetDir)setup.msi"></Payload>
</ExePackage>
于 2013-07-25T13:42:56.463 回答