Summary
Add a dedicated dotnetup migrate command that converts system-level .NET installs to dotnetup-managed local installs. Remove the migration prompt from the minimal walkthrough and install commands (except on very first run).
Current Behavior
PromptInstallsToMigrateIfDesired is called during the walkthrough and install flows, prompting the user to convert system installs on every interactive invocation that detects new system installs.
Proposed Behavior
New command: dotnetup migrate
- Enumerates system-level installs using existing
GetExistingSystemInstalls logic.
- Displays the list and prompts for confirmation (reuse existing display/prompt code).
- Converts selected installs to dotnetup-managed installs using existing conversion logic.
- Supports
--noninteractive to auto-accept (converts all without prompting).
- Supports
--no-progress flag.
Changes to existing flows
- First-ever invocation (no config file exists): Continue to prompt about migration as part of the walkthrough/install flow. This is the user's first interaction with dotnetup and migration is relevant context.
- Subsequent invocations: Do not prompt about migration in the install commands. Do prompt in the walkthrough still.
- Be careful not to duplicate the "is first run" detection logic — reuse
DotnetupConfig.Exists() or an equivalent single check.
Acceptance Criteria
Summary
Add a dedicated
dotnetup migratecommand that converts system-level .NET installs to dotnetup-managed local installs. Remove the migration prompt from the minimal walkthrough and install commands (except on very first run).Current Behavior
PromptInstallsToMigrateIfDesiredis called during the walkthrough and install flows, prompting the user to convert system installs on every interactive invocation that detects new system installs.Proposed Behavior
New command:
dotnetup migrateGetExistingSystemInstallslogic.--noninteractiveto auto-accept (converts all without prompting).--no-progressflag.Changes to existing flows
DotnetupConfig.Exists()or an equivalent single check.Acceptance Criteria
dotnetup migratecommand exists and converts system installs to local.dotnetup migrateworks in both interactive and non-interactive modes.dotnetup migrateexplains what it does.