Single-File: Run from Bundle
authorSwaroop Sridhar <swaroop.sridhar@microsoft.com>
Tue, 21 Apr 2020 05:04:13 +0000 (22:04 -0700)
committerSwaroop Sridhar <swaroop.sridhar@microsoft.com>
Mon, 18 May 2020 07:53:47 +0000 (00:53 -0700)
commit0541e4bdaa3c4b979088adc637ffc9f39b903bf3
tree7b32e163834e9e6dafd854cf27404058351bf972
parentbacef403fbfce0d9e3d49368bfd36dec6dea01fc
Single-File: Run from Bundle

This change implements:

* Runtime changes necessary to load assemblies directly from the bundle:
    * Design notes about [Load from Bundle](https://github.com/dotnet/designs/blob/master/accepted/2020/single-file/design.md#peimage-loader)
    * Most of these changes are directly from https://github.com/dotnet/coreclr/pull/26504 and https://github.com/dotnet/coreclr/pull/26904

* Hostpolicy change to not add bundled assemblies to TPA list:
    * Design notes about [Dependency Resolution](https://github.com/dotnet/designs/blob/master/accepted/2020/single-file/design.md#dependency-resolution)
    * TBD (separately) items: Fix for hammer servicing #36031

Fixes #32822
37 files changed:
src/coreclr/src/binder/assemblybinder.cpp
src/coreclr/src/binder/coreclrbindercommon.cpp
src/coreclr/src/binder/inc/assembly.hpp
src/coreclr/src/binder/inc/assemblybinder.hpp
src/coreclr/src/dlls/mscoree/unixinterface.cpp
src/coreclr/src/inc/bundle.h [new file with mode: 0644]
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/pal/src/include/pal/map.hpp
src/coreclr/src/pal/src/include/pal/module.h
src/coreclr/src/pal/src/loader/module.cpp
src/coreclr/src/pal/src/map/map.cpp
src/coreclr/src/vm/CMakeLists.txt
src/coreclr/src/vm/appdomain.cpp
src/coreclr/src/vm/appdomain.hpp
src/coreclr/src/vm/assemblynative.cpp
src/coreclr/src/vm/bundle.cpp [new file with mode: 0644]
src/coreclr/src/vm/coreassemblyspec.cpp
src/coreclr/src/vm/crossgen/CMakeLists.txt
src/coreclr/src/vm/pefile.cpp
src/coreclr/src/vm/peimage.cpp
src/coreclr/src/vm/peimage.h
src/coreclr/src/vm/peimage.inl
src/coreclr/src/vm/peimagelayout.cpp
src/coreclr/src/vm/peimagelayout.h
src/installer/corehost/cli/bundle/file_entry.cpp
src/installer/corehost/cli/bundle/runner.cpp
src/installer/corehost/cli/bundle/runner.h
src/installer/corehost/cli/deps_entry.cpp
src/installer/corehost/cli/deps_entry.h
src/installer/corehost/cli/hostpolicy/deps_resolver.cpp
src/installer/corehost/cli/hostpolicy/deps_resolver.h
src/installer/corehost/cli/hostpolicy/hostpolicy_context.cpp
src/installer/test/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundleExtractToSpecificPath.cs
src/installer/test/Microsoft.NET.HostModel.Tests/AppHost.Bundle.Tests/BundledAppWithSubDirs.cs
src/installer/test/Microsoft.NET.HostModel.Tests/Helpers/BundleHelper.cs
src/installer/test/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleAndRun.cs
src/installer/test/Microsoft.NET.HostModel.Tests/Microsoft.NET.HostModel.Bundle.Tests/BundleLegacy.cs