Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/5.0.1xx-preview4] Single-File: Pass TFM Version to the Bundler #11518

Merged
merged 1 commit into from
May 1, 2020

Conversation

swaroop-sridhar
Copy link
Contributor

@swaroop-sridhar swaroop-sridhar commented May 1, 2020

Customer Scenario

A netcoreapp3.0 single file app published from .net5 SDK doesn't run.

Problem

The netcoreapp3.0 apphost encounters the wrong version of the bundle header when trying to extract the bundle.

Solution

Pass the TFM version argument to the bundler in GenrateBundle task.

Risk

Very Low.

Testing

Manually tested the SDK by inserting apphost, hostfxr, hostpolicy, and hostmodel library from dotnet/runtime#35679 into the dotnet/packs from this build.

Verified that netcoreapp3,0 apps published from this SDK run OK on Windows, Linux, Osx.
Verified that cross-targetting builds of such apps also work OK.

@swaroop-sridhar
Copy link
Contributor Author

@dsplaisted I have posted the PR to revert the framework-bundle-processing change in the runtime repo dotnet/runtime#35679.

After this, a small change was required in the SDK to support netcoreapp3.0 single file apps with current SDK. This is a part of #11502 you reviewed in the morning. Please take a look at it.

I'll checkin the remaining parts of #11502 into master branch. Thanks.

Customer Scenario
A netcoreapp3.0 single file app published from .net5 SDK doesn't run.

Problem
The netcoreapp3.0 apphost encounters the wrong version of the bundle header when trying to extract the bundle.

Solution

Pass the TFM version argument to the bundler in GenrateBundle task.

Risk

Very Low.
swaroop-sridhar added a commit to dotnet/runtime that referenced this pull request May 1, 2020
This commit reverts:
Revert "Single-File: Process bundles in the framework (#34274)"
This reverts commit 78b303d.

Revert "Single-File Bundler: Add a FileSize test (#35149)"
This reverts commit 779588a.

*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 78b303d.

and a dependent test-only change:

Revert "Single-File Bundler: Add a FileSize test (#35149)" commit 779588a.

*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 dotnet/sdk#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).
@jeffschwMSFT
Copy link
Member

This is part of the single file revert for preview 4, which was approved by tactics. Please merge once validation is complete.

@wli3 wli3 merged commit 64d7958 into dotnet:release/5.0.1xx-preview4 May 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants