Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>2020-05-01 19:24:13 +0300
committerGitHub <noreply@github.com>2020-05-01 19:24:13 +0300
commit47ec733ba79b196e4e09d0c89bad245155002353 (patch)
tree98fc7124abbcb678abe9687e757a77e638560f05 /src/installer/corehost/cli/bundle/info.h
parent6d1f7e01d3429054ec3dcb7c75b3450b9fe1429e (diff)
[release/5.0-preview4] Revert processing bundles in framework (#35679)v5.0.0-preview.4.20251.6
This commit reverts: Revert "Single-File: Process bundles in the framework (#34274)" This reverts commit 78b303df8fbb242985d049a277d0d199cafd51b5. Revert "Single-File Bundler: Add a FileSize test (#35149)" This reverts commit 779588a509b81d909ac5d496c172949ec1f1ddcc. *Customer Scenario* Publishing apps as a self-contained single-file doesn't work as expected. * Publish needs to generate hostpolicy and hostfxr separate from the single file bundle * Cross-platform publishing is incorrect *Problem* Since Static-apphost is not yet ready, processing bundle content in hostpolicy means that hostpolicy and hostfxr DLLs need to be separate from the bundle. This causes self-contained single-file apps to not be a "single file" temporarily. The change also requires supporting changes from the SDK, to publish hostfxr and hostpolicy as separate files, and to invoke HostModel library with arguments that facilitate cross-platform publishing. *Solution* To solve these, problem, this change reverts: Revert "Single-File: Process bundles in the framework (#34274)" commit 78b303df8fbb242985d049a277d0d199cafd51b5. and a dependent test-only change: Revert "Single-File Bundler: Add a FileSize test (#35149)" commit 779588a509b81d909ac5d496c172949ec1f1ddcc. *Risk* Medium The change is contained to only host components: apphost, hostpolicy, and hostfxr. However, the change is big, and needs testing in runtime and SDK repos. *Testing* Manually tested the SDK by inserting apphost, hostfxr, hostpolicy, and hostmodel library from this build into the `dotnet/packs` preview-4 SDK from https://github.com/dotnet/sdk/pull/11518 build. Verified that: * Singlefile apps can be published and run OK for { Windows, Linux, Osx } x {netcoreapp3.0, netcoreapp3.1, netcoreapp5.0} * Cross-targeting builds of single-file apps build and run OK (ex: built on Windos, run on Mac).
Diffstat (limited to 'src/installer/corehost/cli/bundle/info.h')
-rw-r--r--src/installer/corehost/cli/bundle/info.h91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/installer/corehost/cli/bundle/info.h b/src/installer/corehost/cli/bundle/info.h
deleted file mode 100644
index 0f3db559fc2..00000000000
--- a/src/installer/corehost/cli/bundle/info.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-#ifndef __INFO_H_
-#define __INFO_H_
-
-#include "error_codes.h"
-#include "header.h"
-
-// bundle::info supports:
-// * API for identification of a single-file app bundle, and
-// * Minimal probing and mapping functionality only for the app.runtimeconfig.json and app.deps.json files.
-// bundle::info is used by HostFxr to read the above config files.
-
-namespace bundle
-{
- struct info_t
- {
- struct config_t
- {
- config_t()
- : m_location(nullptr) {}
-
- config_t(const config_t& config)
- {
- m_path = config.m_path;
- m_location = config.m_location;
- }
-
- config_t(const pal::string_t& path, const location_t *location=nullptr)
- {
- m_path = path;
- m_location = location;
- }
-
- bool matches(const pal::string_t& path) const
- {
- return m_location->is_valid() && path.compare(m_path) == 0;
- }
-
- static bool probe(const pal::string_t& path)
- {
- return is_single_file_bundle() &&
- (the_app->m_deps_json.matches(path) || the_app->m_runtimeconfig_json.matches(path));
- }
-
- void set_location(const location_t* location)
- {
- m_location = location;
- }
-
- static char* map(const pal::string_t& path, const location_t* &location);
- static void unmap(const char* addr, const location_t* location);
-
- private:
- pal::string_t m_path;
- const location_t *m_location;
- };
-
- static StatusCode process_bundle(const pal::char_t* bundle_path, const pal::char_t *app_path, int64_t header_offset);
- static bool is_single_file_bundle() { return the_app != nullptr; }
-
- bool is_netcoreapp3_compat_mode() const { return m_header.is_netcoreapp3_compat_mode(); }
- const pal::string_t& base_path() const { return m_base_path; }
- int64_t header_offset() const { return m_header_offset; }
-
- // Global single-file info object
- static const info_t* the_app;
-
- protected:
- info_t(const pal::char_t* bundle_path,
- const pal::char_t* app_path,
- int64_t header_offset);
-
- const char* map_bundle();
- void unmap_bundle(const char* addr) const;
-
- pal::string_t m_bundle_path;
- pal::string_t m_base_path;
- size_t m_bundle_size;
- int64_t m_header_offset;
- header_t m_header;
- config_t m_deps_json;
- config_t m_runtimeconfig_json;
-
- private:
- StatusCode process_header();
- };
-}
-#endif // __INFO_H_