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

Add more RuntimeIdentifier information to .NET SDK #9106

Merged
merged 3 commits into from
Nov 23, 2020

Conversation

dsplaisted
Copy link
Member

  • Add NETCoreSdkPortableRuntimeIdentifier to bundled versions. This is the first step to allow us to use a consistent, portable RuntimeIdentifier as the default for the --use-current-runtime parameter. See --use-current-runtime semantics sdk#14296
  • Add a NETCoreSdkRuntimeIdentifierChain.txt file to the SDK folder. This is a list of RuntimeIdentifiers compatible with NETCoreSdkPortableRuntimeIdentifier, starting from the best match and walking up the tree. This will allow the workload resolver to better handle RID-specific workload packs, without bringing in additional dependencies (NuGet APIs for processing the RID graph as well as .NET Core APIs for getting the current runtime) which would be difficult to run in an MSBuild resolver that has to run on .NET Framework.

@mhutch @wli3

@dsplaisted dsplaisted changed the title Create rid chain Add more RuntimeIdentifier information to .NET SDK Nov 20, 2020
@dsplaisted dsplaisted requested review from wli3 and a team November 20, 2020 08:56
@am11
Copy link
Member

am11 commented Nov 20, 2020

Thanks! I was thinking about deriving it after dotnet/runtime#43804, by sharing the supported platform list and resolution of portable and non-portable RIDs list via arcade repo. However, this approach of reliance on RID graph makes it self-sufficient. (I would have never thought about it) 👍

@dotnet dotnet deleted a comment from dsplaisted Nov 20, 2020
Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com>
@dsplaisted
Copy link
Member Author

Thanks! I was thinking about deriving it after dotnet/runtime#43804, by sharing the supported platform list and resolution of portable and non-portable RIDs list via arcade repo. However, this approach of reliance on RID graph makes it self-sufficient. (I would have never thought about it) 👍

Note that this PR doesn't actually solve the problem of setting a different portable RID in source-build. It simply creates a separate property which can be used to do that.

It walks up the RID graph for other reasons, but that alone doesn't tell us which of those RIDs is the right portable RID that we want to use. It might be the same as the ProductMonikerRid, or it might be one or possibly more levels above it in the graph.

@joeloff
Copy link
Member

joeloff commented Nov 23, 2020

Looks good. People tend to edit text files, so we should just be aware if the RID file is installed and someone edits it, MSI won't remove the file when it uninstalls

Copy link
Member

@sfoslund sfoslund left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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