【问题标题】:'Burn' and custom MBA using WiX - repair failing on NetFx45Web package使用 WiX 的“刻录”和自定义 MBA - NetFx45Web 包上的修复失败
【发布时间】:2013-04-25 05:11:35
【问题描述】:

我写了一个自定义的Managed Bootstrapper Application (MBA) 并且得到了大部分功能,除了修复。检查捆绑日志提供:

[335C:3440][2013-04-29T13:51:41]w343: Prompt for source of package:
NetFx45Web, payload: NetFx45Web, path:
D:\dev\Setup\redist\dotNetFx45_Full_setup.exe
[335C:3440][2013-04-29T13:51:41]e054: Failed to resolve source for file:
D:\dev\Setup\redist\dotNetFx45_Full_setup.exe, error: 0x80070002.
[335C:3440][2013-04-29T13:51:41]e000: Error 0x80070002: Failed while
prompting for source (original path
'D:\dev\Setup\redist\dotNetFx45_Full_setup.exe').
[335C:3440][2013-04-29T13:51:41]e313: Failed to acquire payload: NetFx45Web
to working path:
C:\Users\admin\AppData\Local\Temp\{ab28ebc1-ce07-49bf-bb1f-bb83a4944aeb}\NetFx45Web,
error: 0x80070002.
[335C:164C][2013-04-29T13:51:41]e000: Error 0x80070002: Failed while
caching, aborting execution.
[335C:164C][2013-04-29T13:51:41]i399: Apply complete, result: 0x80070002,
restart: None, ba requested restart:  No
[335C:164C][2013-04-29T13:51:43]i500: Shutting down, exit code: 0x80070002
[335C:164C][2013-04-29T13:51:43]i410: Variable: ArpSystemComponentCustom = 1
[335C:164C][2013-04-29T13:51:43]i410: Variable: NETFRAMEWORK45 = 378389

有趣的是,即使主日志文件填充了包特定的日志文件变量名,Burn 实际上并没有生成该文件。我的猜测是它在它可以这样做之前就失败了。

我在我的 WiX 包中包含了 NetFx45Web 包:

<PackageGroupRef Id="NetFx45Web"/>

我的 BootstrapperCore.config 如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="wix.bootstrapper"
                      type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup,
                      BootstrapperCore">
            <section name="host"
                     type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection,
                     BootstrapperCore" />
        </sectionGroup>
    </configSections>

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
    </startup>
    <wix.bootstrapper>
        <host assemblyName="MyCustomMBA">
            <supportedFramework version="v4\Full"/>
            <supportedFramework version="v4\Client"/>
        </host>
    </wix.bootstrapper></configuration>

我查看了相关的邮件列表线程:

我已经讨论了那里讨论的 ResolveSource 问题。

为什么修复失败?安装/卸载工作正常。

【问题讨论】:

  • Rob 的回答为我指明了正确的方向。我的代码中有一个与 ResolveSource 事件处理程序相关的错误,导致修复失败,因为回调中没有返回 Result.Download,即使它看起来是这样。

标签: wix windows-installer bootstrapper burn


【解决方案1】:

错误0x80070002 表示找不到文件。日志文件中也没有显示 ResolveSource() 回调返回 Result.Download 以指示 Burn 引擎尝试从 Internet 重新获取 .NET Framework。如果引导程序应用程序 (BA) 返回 Result.Download,您将看到有关从某个 URL 获取 NETFX4.5 有效负载的日志条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多