Skip to content

KB2468871 should be installed before bootstrapper starts #196

@shiftkey

Description

@shiftkey

Warning: lots of logs

So I have a bundle here which is attempting to install a KB before the installer UI appears (because Bad Things will happen).

When the app installs, it goes off and checks the registry for our two new keys:

[0FF0:066C][2013-10-06T14:01:41]i100: Detect begin, 4 packages
[0FF0:066C][2013-10-06T14:01:41]i000: Registry key not found. Key = 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full'
[0FF0:066C][2013-10-06T14:01:41]i000: Registry key not found. Key = 'SOFTWARE\Microsoft\Updates\Microsoft .NET Framework 4 Extended\KB2468871'
[0FF0:066C][2013-10-06T14:01:41]i000: Registry key not found. Key = 'SOFTWARE\Microsoft\Updates\Microsoft .NET Framework 4 Extended\KB2468871'
[0FF0:066C][2013-10-06T14:01:41]i052: Condition 'NETFRAMEWORK40' evaluates to false.
[0FF0:066C][2013-10-06T14:01:41]i052: Condition 'KB2468871x64Installed AND VersionNT64' evaluates to false.
[0FF0:066C][2013-10-06T14:01:41]i052: Condition 'KB2468871x86Installed AND (NOT VersionNT64 OR KB2468871x64Installed)' evaluates to false.
[0FF0:066C][2013-10-06T14:01:41]i101: Detected package: NetFx40Web, state: Absent, cached: None
[0FF0:066C][2013-10-06T14:01:41]i101: Detected package: KB2468871x64, state: Absent, cached: None
[0FF0:066C][2013-10-06T14:01:41]i101: Detected package: KB2468871x86, state: Absent, cached: None
[0FF0:066C][2013-10-06T14:01:41]i101: Detected package: UserApplicationId, state: Absent, cached: None
[0FF0:066C][2013-10-06T14:01:41]i199: Detect complete, result: 0x0

That all looks normal, with the fourth package being our dummy installer to keep the elevation as per-user by default.

[0FF0:066C][2013-10-06T14:01:44]i201: Planned package: NetFx40Web, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: No, dependency: None
[0FF0:066C][2013-10-06T14:01:44]i201: Planned package: KB2468871x64, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[0FF0:066C][2013-10-06T14:01:44]i201: Planned package: KB2468871x86, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[0FF0:066C][2013-10-06T14:01:44]i201: Planned package: UserApplicationId, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None

And again, it's planning to install all four packages. Seems legit.

It gets interesting here, because we see our application get registered as a bundle dependency provider.

[0FF0:066C][2013-10-06T14:01:50]i320: Registering bundle dependency provider: {2c319f14-57a8-433b-a2e9-a1a87c9e54ba}, version: 2.8.0.0

I guess this means we might need to signal something in our application to kick things off. I thought it might be requiring us to listen to ResolveSource inside BootstrapperApplication but that doesn't fire.

Anyway, it fetches down the .NET4 web installer, elevates and installs that.

[0FF0:05F0][2013-10-06T14:01:50]w343: Prompt for source of package: NetFx40Web, payload: NetFx40Web, path: C:\Users\brendanforster\Downloads\redist\dotNetFx40_Full_setup.exe
[0FF0:05F0][2013-10-06T14:01:50]i338: Acquiring package: NetFx40Web, payload: NetFx40Web, download from: http://go.microsoft.com/fwlink/?linkid=182805
[0B94:0B90][2013-10-06T14:01:52]i305: Verified acquired payload: NetFx40Web at path: C:\ProgramData\Package Cache\.unverified\NetFx40Web, moving to: C:\ProgramData\Package Cache\06BECADB92A5FCCA2529C0B93687C2A0C6D0D610\redist\dotNetFx40_Full_setup.exe.
...
Cache\06BECADB92A5FCCA2529C0B93687C2A0C6D0D610\redist\dotNetFx40_Full_setup.exe" /q /norestart /ChainingPackage "Shimmer Desktop Demo"'
[0FF0:066C][2013-10-06T14:04:40]i319: Applied execute package: NetFx40Web, result: 0x0, restart: None
[0FF0:066C][2013-10-06T14:04:41]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No
[0FF0:066C][2013-10-06T14:04:41]i500: Shutting down, exit code: 0x0
[0FF0:066C][2013-10-06T14:04:41]i000: The prerequisites were successfully installed. The bootstrapper application will be reloaded.
[0FF0:066C][2013-10-06T14:04:41]i006: Bootstrapper application requested to be reloaded.
[0FF0:066C][2013-10-06T14:04:41]i000: Loading managed bootstrapper application.

What sucks about this is that our managed bootstrapper is started without the KB patches being applied. If we want to start our custom installer at this point, I'd love for it to have all the prerequisites ready.

Anyway, we march onward and see the Planned messages (with our KB packages still missing).

[0FF0:066C][2013-10-06T14:04:50]i000: Setting string variable 'WixBundleLog_UserApplicationId' to value 'C:\Users\BRENDA~1\AppData\Local\Temp\Shimmer_Desktop_Demo_20131006140141_3_UserApplicationId.log'
[0FF0:066C][2013-10-06T14:04:50]i201: Planned package: NetFx40Web, state: Present, default requested: Present, ba requested: Present, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[0FF0:066C][2013-10-06T14:04:50]i201: Planned package: KB2468871x64, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: Yes, dependency: None
[0FF0:066C][2013-10-06T14:04:50]i201: Planned package: KB2468871x86, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: None, cache: Yes, uncache: Yes, dependency: None
[0FF0:066C][2013-10-06T14:04:50]i201: Planned package: UserApplicationId, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
[0FF0:066C][2013-10-06T14:04:51]i299: Plan complete, result: 0x0

There's no context here which makes me think the BootstrapperApplication has to do anything, but maybe I'm missing something.

Plan of Attack

  • can we emulate the initial behaviour of the bootstrapper to ensure the KB is installed t the right time?
  • why aren't the KB being installed at all, the detect and plan events are being raised as expected?

cc @paulcbetts

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions