dotnetup walkthrough - ux & graphical improvements#53464
Merged
nagilson merged 172 commits intodotnet:release/dnupfrom Apr 10, 2026
Merged
dotnetup walkthrough - ux & graphical improvements#53464nagilson merged 172 commits intodotnet:release/dnupfrom
dotnetup walkthrough - ux & graphical improvements#53464nagilson merged 172 commits intodotnet:release/dnupfrom
Conversation
We talked about 'shadowing' `dotnet` commands to allow users to ensure `dotnetup` always works until the product is fully integrated with `dotnet.exe` itself - such that the installers and visual studio are not able to break scenarios that rely on `dotnetup`. I think that is important for us to provide. This document is a first-pass on what it'd be like to actually implement that. The security portion in particular is interesting, and I'm less compelled by the proposal after trying to write it all out. Nonetheless, I wanted to see where it would take us were we to implement it. Which, I had to do some of the partial implementation so I could reason with how this would work, but that's not included here. That's in the branch `nagilson-shadow-dotnet`. I'd appreciate having our team chat about this doc and whether we still want to do this or not, or whether there are changes that need to be made at a higher level.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…tnetup-dotnet-impl-mrc
1. Running 'dotnetup' should initiate the walkthrough instead of exiting 2. Double-clicking the dotnetup executable should not make it immediately bail out 3. Add a dotnetup.config.json file which stores the decisions users made in the walkthrough so we don't ask every time 4. Add interactivity to selecting the default install option and add the dotnetup dotnet option 5. Don't ask the user every time what version to install 6. Don't ask the user every time where to do the install 7. Start predownloading in the walkthrough for what we'll need to install later 8. Add the dotnetup walkthrough command to enable changing the configuration again later 9. Fix ordering and grouping of dotnetup --help 10. Improve spacing/wording/padding and remove instances of raw json data / data structures being dumped into the terminal
This reverts commit 97265bd.
This analyzer helps prevent copilot from writing functions which are too long so it will naturally break them up into separate pieces.
Add dotnetup theme command to add themes Unify colors and make colors align with .net branding (purple colors) Improvements to admin installs walkthrough Improvements to selection mode ui Attempt at introductory box with dotnet bot graphic - seems buggy atm Adds concurrent runtime installs
Also adds concurrent sdk install support scaffolding fixes bug with path replacement fixes bug with needing to enter to complete (bad design)
might be a problem if other text appears mid way through the install
…theres a lot of installs
Member
Author
|
@dsplaisted Thanks so much for this thorough review. Every feedback item has been addressed besides the broader design discussion details mentioned here: #53464 (comment) that we didn't have a chance to discuss today. Let's discuss whether we'd like to:
|
The Dispose method was throwing UnauthorizedAccessException when cleaning up temp directories on Windows because hostfxr.dll could still be locked after the dotnetup process exits (loaded via LoadLibraryExW during install validation). The catch block only handled IOException, so UnauthorizedAccessException escaped and failed the test. Fix: Add retry logic with exponential backoff (200ms-3200ms, 6 attempts) that catches both IOException and UnauthorizedAccessException. If all retries fail, log a warning instead of crashing the test. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Make ProgressTaskImpl implement IDisposable to satisfy CA1001 (owns disposable _shimmerTimer field) - Extract GetRootsToUpdate helper from Execute to fix MA0051 (method was 61 lines, max allowed is 60) - Applied dotnet format Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dsplaisted
approved these changes
Apr 10, 2026
Member
dsplaisted
left a comment
There was a problem hiding this comment.
Looks good! I finished reviewing the tests and had a few more comments on the parts I reviewed before.
| </ItemGroup> | ||
|
|
||
| <ItemGroup> | ||
| <PackageReference Include="Meziantou.Analyzer" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers" /> |
Member
There was a problem hiding this comment.
I think this will still break source build. It will still try to download the package during NuGet restore and that will either fail or trigger a prebuilt error or something (I think).
4 tasks
design changes will be implemented hereafter because further churn in this PR is inefficient to review
…ilson/sdk into nagilson-dnup-walkthrough-ux
This was referenced Apr 10, 2026
Closed
This was referenced Apr 11, 2026
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
dotnetupwalkthrough #52643)Resolves Separate
dotnetupinteractive / noninteractive modes #51584)Resolves DNUP Admin Installs -> Local Installs #51101)
dotnetup runtime installinstalling multiple things #52679)