.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.
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.
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.
…ash with diff manifest ordering
|
Uh, so as I'm seeing it, the hash for one of our files might be wrong in the release. Investigating. |
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.