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/8.0.1xx] Add escape hatch for PublishAot without RuntimeIdentifier. Fixes #33414. #35497

Merged
merged 3 commits into from
Sep 18, 2023

Conversation

github-actions[bot]
Copy link
Contributor

Backport of #35366 to release/8.0.1xx

/cc @dsplaisted @rolfbjarne

This adds an escape hatch for a sanity check when trying to use PublishAot without a RuntimeIdentifier, because the check is not valid when building universal apps for macOS and Mac Catalyst (the netX-macos and netX-maccatalyst target frameworks).

When building such an app, the project file will set RuntimeIdentifiers (plural):

    <TargetFramework>net8.0-macos</TargetFramework>
    <RuntimeIdentifiers>osx-x64;osx-arm</RuntimeIdentifiers>

and then during the build, the macOS SDK will run two inner builds, with RuntimeIdentifiers unset, and RuntimeIdentifier set to each of the rids (and at the end merge the result into a single app).

The problem is that the outer build, where RuntimeIdentifiers is set, but RuntimeIdentifier isn't, triggers the sanity check, and that fails the build.

I attempted to unset PublishAot for the outer build, but that doesn't work for two reasons:

* It can't be unset if customers pass /p:PublishAot=true on the command line.
* The package restore won't restore the NativeAOT packages nor include them in the build, and thus effectively NativeAOT is turned off for the inner builds as well, even if we set PublishAot=true for them.

So instead add an escape hatch for the sanity check.

Fixes #33414.
These new properties requires a downstream SDK to do the right thing, they
won't work out-of-the box.
@dotnet-issue-labeler dotnet-issue-labeler bot added Area-External untriaged Request triage from a team member labels Sep 18, 2023
@dsplaisted dsplaisted merged commit 25dedfc into release/8.0.1xx Sep 18, 2023
16 checks passed
@dsplaisted dsplaisted deleted the backport/pr-35366-to-release/8.0.1xx branch September 18, 2023 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-External untriaged Request triage from a team member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants