3

I wrote a custom Managed Bootstrapper Application (MBA) and got most of the functionality to work, except for a repair. Examining the bundle log provides:

[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

Interestingly, even though the master log file populates the package specific log file variable name, Burn does not actually generate that file. My guess is it fails before it can do so.

I have included the NetFx45Web package in my WiX bundle as:

<PackageGroupRef Id="NetFx45Web"/>

My BootstrapperCore.config is as follows:

<?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>

I have looked at related mailing list threads:

And I have the ResolveSource matter as discussed there, covered.

Why may this be failing on a repair? The install/uninstall works perfectly fine.

4

1 回答 1

5

The error 0x80070002 means the file cannot be located. It also does not appear from the log file that the ResolveSource() callback returned Result.Download to instruct the Burn engine to attempt to reacquire the .NET Framework from the Internet. If the bootstrapper application (BA) returns Result.Download, you'll see log entries that talk about acquiring the NETFX4.5 payload from some URL.

于 2013-05-01T07:55:41.360 回答