COM Activation host (dotnet/core-setup#4577)
authorAaron Robinson <arobins@microsoft.com>
Tue, 12 Feb 2019 17:38:10 +0000 (09:38 -0800)
committerGitHub <noreply@github.com>
Tue, 12 Feb 2019 17:38:10 +0000 (09:38 -0800)
commit87ba04db54ec305b1baae701a8a575cfe7b9268b
tree5fb76711e4a8c8e6c5047af96c5f479c3dcfd505
parent3e7843f0bc37270442faaa5d098ba01e10c88c4d
COM Activation host (dotnet/core-setup#4577)

* Add new comhost library for COM activation
 - Supports reading clsidmap as file or resource
 - Supports registration and unregistration of COM server

* Replace COREHOST_MAKE_DLL define with EXPORT_SHARED_API

* Convert CoreClr instance loading API from a flat C-style to a class API . This will make having multiple CoreClr instances in the same process easier in the future.

* Move internal execute* APIs to the fx_muxer.cpp compilation unit
Add initial/erroring implementation for get_com_activation_delegate() to fx_muxer_t.

* Create coreclr_property_bag_t for property management.

* Extract coreclr property creations into a reusable class.

* Report process ID during test run.

* Remove the new corehost_ensure_load() export since the previous semantics
  of reinitializing hostpolicy were designed for testing.

* Fix P/Invoke signature for hostfxr_get_native_search_directories to define
  the calling convention and remove usage of StringBuilder.

* Properly propagate the host command on reinitialization
Remove additional uses of global variables where possible

* Don't add the COM server assembly to the TPA
Ensure the COM server assembly deps.json isn't added to the AppContext

* Feedback on error propagation

Commit migrated from https://github.com/dotnet/core-setup/commit/1d95ece515edbbad0ef8f8980424d3e3bce49cb2
39 files changed:
docs/installer/design-docs/COM-activation.md
src/installer/corehost/Windows/gen-buildsys-win.bat
src/installer/corehost/build.cmd
src/installer/corehost/build.proj
src/installer/corehost/cli/CMakeLists.txt
src/installer/corehost/cli/args.cpp
src/installer/corehost/cli/args.h
src/installer/corehost/cli/breadcrumbs.cpp
src/installer/corehost/cli/breadcrumbs.h
src/installer/corehost/cli/comhost/CMakeLists.txt [new file with mode: 0644]
src/installer/corehost/cli/comhost/Exports.def [new file with mode: 0644]
src/installer/corehost/cli/comhost/clsidmap.cpp [new file with mode: 0644]
src/installer/corehost/cli/comhost/comhost.h [new file with mode: 0644]
src/installer/corehost/cli/comhost/exports.cpp [new file with mode: 0644]
src/installer/corehost/cli/coreclr.cpp
src/installer/corehost/cli/coreclr.h
src/installer/corehost/cli/deps_resolver.cpp
src/installer/corehost/cli/deps_resolver.h
src/installer/corehost/cli/fxr/CMakeLists.txt
src/installer/corehost/cli/fxr/fx_muxer.cpp
src/installer/corehost/cli/fxr/fx_muxer.h
src/installer/corehost/cli/fxr/fx_ver.h
src/installer/corehost/cli/fxr/hostfxr.cpp
src/installer/corehost/cli/host_startup_info.h
src/installer/corehost/cli/hostpolicy.cpp
src/installer/corehost/cli/hostpolicy/CMakeLists.txt
src/installer/corehost/cli/libhost.h
src/installer/corehost/common/corehost.h [new file with mode: 0644]
src/installer/corehost/common/pal.h
src/installer/corehost/common/pal.unix.cpp
src/installer/corehost/common/pal.windows.cpp
src/installer/corehost/common/utils.cpp
src/installer/corehost/common/utils.h
src/installer/corehost/corehost.cpp
src/installer/corehost/error_codes.h
src/installer/test/Assets/TestProjects/HostApiInvokerApp/HostFXR.cs
src/installer/test/TestUtils/BuildReporter.cs
src/installer/test/TestUtils/Command.cs
src/installer/test/dir.proj