-
Notifications
You must be signed in to change notification settings - Fork 1.2k
.NET SDK release/dnup branch build uses dotnetup to download core .NET runtimes
#52695
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
base: release/dnup
Are you sure you want to change the base?
.NET SDK release/dnup branch build uses dotnetup to download core .NET runtimes
#52695
Conversation
InitializeDotnetCli installs the .NET 10 SDK EnsureDotnetupBuilt checks if dotnetup.exe exists, builds it if not InstallDotNetSharedFramework uses dotnetup to install runtimes 6.0, 7.0, 8.0, 9.0 - I considered containing the dotnetup exe itself or acquiring it but that would require sign checks to be secure.
…mpl' into nagilson-sdk-uses-dnup-for-core-runtimes
We also get rid of the deletion of pdbs - it's an unncessary step. Also, we don't fall back to the install script - we want to fail if dotnetup fails so we know it's failing. It should never fail. It if fails we want to find out why and fix it.
I dont think we can be AOT and single file at the same time unless we have a specific satellite resource language specified, but we can look into that when we do loc.
dsplaisted
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Once we can build and publish the dotnetup exe to pipeline artifacts, we might be able to use that to download the stage 0 .NET SDK, even if we don't yet have an easy-to-use place to acquire dotnetup from.
You bet! That is my next step after merging the other PRs back into this since this is unblocked. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the release/dnup branch build toolset restoration flow to use the in-repo dotnetup tool for installing the core .NET runtimes needed for testing/dogfooding.
Changes:
- Build
dotnetupduring toolset restore (if not already present) and use it to install Microsoft.NETCore.App runtime versions 6.0.0–9.0.0. - Add NativeAOT-related properties to
src/Installer/dotnetup/dotnetup.csproj. - Ignore the
eng/dotnetup/publish output directory in.gitignore.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/Installer/dotnetup/dotnetup.csproj | Adds NativeAOT-related MSBuild properties intended to support producing a usable dotnetup binary for bootstrapping. |
| eng/restore-toolset.sh | Builds dotnetup and switches runtime installation to dotnetup runtime install .... |
| eng/restore-toolset.ps1 | Builds dotnetup and switches runtime installation to dotnetup runtime install ... (Windows). |
| .gitignore | Ignores eng/dotnetup/ publish output from source control. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
I'm thinking this PR will fail until #52696 is merged due to the issues with the muxer handling. |
could go in a separate PR and is somewhat opinionated - but I think the intent is clear to install to a specific path.
…json" This reverts commit 183089d.
Building on top of #52649, we want to be a first party dogfooder to QA our product, evaluate its functionality as a user, and gain confidence in its ability to be publicly consumed elsewhere. This is not going to apply to
mainor any official branch currently releasing because we still need approval for that pending other work items.We will eventually install nightly SDK and Runtimes with this as well, but this is a good stop gap for now. To make that work we need to download a dotnetup executable, because we can't build dotnetup without the SDK. Since we don't have that acquisition experience of dotnetup itself done, and it doesn't yet install preview SDKs, I think this is good for now.
Targeting branch is the one that implements runtime selection since we depend on that, to have a digestible PR and will be changed once that's done.