Getting started on Windows with PowerShell
This guide contains the exact PowerShell syntax for the supported Windows / PowerShell 7 product mapping. Shared command behavior is documented separately in the command reference.
Requirements
- Windows
- PowerShell 7
- network access when bootstrap or SDK installation downloads remote artifacts
A system-wide dotnet installation is not required.
Install or update the stable tool
Install the latest published stable release, or rerun the same command later to explicitly update to the latest stable release:
irm https://infoconex.github.io/isolated-dotnet-sdk/install.ps1 | iex
The Pages-hosted bootstrap resolves the latest published stable GitHub Release, downloads that release’s tagged isolated-dotnet-sdk.ps1 and SHA256SUMS, verifies the released script’s SHA-256, and executes only the verified released script. The piped bootstrap itself is trusted through HTTPS delivery from the project Pages site and cannot verify its own bytes before execution.
The verified released file is saved as:
$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1
Normal execution of that saved tool does not auto-update. For an explicit pinned version, reproducible installation, or rollback, see Stable bootstrap, update, and rollback.
Identify the tool version
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -Version
Stable releases published with embedded identity report their exact release tag. Mutable main reports isolated-dotnet-sdk development (main) instead of claiming a stable version. The query exits without bootstrap, network access, SDK discovery, prompting, or mutation.
-Version identifies the isolated-dotnet-sdk tool. -SdkVersion <sdk-version> explicitly selects the .NET SDK used by Install, Verify, and Remove, and the same exact SDK version can be supplied positionally. See Tool version.
Start an interactive session
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1"
Main displays the same stable/development tool identity near the top. The persistent session uses I for Install, R for Remove, L for List, V for Verify, A for Audit, and E for Exit. See Interactive mode for navigation semantics.
Install an SDK
Open the interactive install picker once and exit when it completes:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -Action Install
Install a known exact version directly:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" `
-Action Install `
-SdkVersion '10.0.401'
Without -Action, the explicit SDK selector implies Install:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -SdkVersion '10.0.401'
The equivalent positional convenience form is also supported:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" '10.0.401'
If a matching System SDK already exists, Install normally asks before creating an isolated copy. Use -Yes only when that confirmation should be approved automatically:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" `
-Action Install `
-SdkVersion '10.0.401' `
-Yes
See Install for the behavioral and integrity contract.
List installed SDKs
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -Action List
List shows Isolated SDKs first and read-only System SDKs second. See List.
Audit installed SDKs
Run the explicit online, read-only servicing and lifecycle assessment:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -Action Audit
Audit reports Isolated SDKs and System SDKs separately and uses current Microsoft release metadata. It does not install, remove, or repair SDKs. See Audit.
Verify an isolated SDK
Run Verify directly for a known exact isolated SDK:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" `
-Action Verify `
-SdkVersion '10.0.401'
Verify is read-only. The persistent Main menu also exposes V so you can choose from installed isolated SDKs; System SDKs are not offered as Verify targets. See Verify.
Use an isolated SDK
Invoke the selected version’s host directly:
& "$HOME\dotnet-sdks\10.0.401\dotnet.exe" --version
& "$HOME\dotnet-sdks\10.0.401\dotnet.exe" --info
Normal .NET CLI arguments such as restore, build, test, and run work through that same host path. Nothing in this pattern adds the isolated SDK to PATH.
For global.json, VS Code, and project-level workflows, see Project and editor use.
Remove an isolated SDK
Open the removal picker:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" -Action Remove
Remove one exact isolated SDK:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" `
-Action Remove `
-SdkVersion '10.0.401'
Preview the PowerShell removal operation without shutting down build servers or deleting the SDK:
& "$HOME\dotnet-sdks\isolated-dotnet-sdk.ps1" `
-Action Remove `
-SdkVersion '10.0.401' `
-WhatIf
PowerShell also supports native -Confirm, explicit -Confirm:$false, and the tool’s -Yes automation switch for Remove. See Remove for shared behavior and the PowerShell removal contract for the native ShouldProcess rules.
Development source
For explicit development testing only, mutable main can be piped into PowerShell:
irm https://raw.githubusercontent.com/infoconex/isolated-dotnet-sdk/main/isolated-dotnet-sdk.ps1 | iex
This is not a stable installation command. It consumes mutable source and does not receive the stable-release checksum guarantee. Once saved, that development copy reports isolated-dotnet-sdk development (main) through -Version and on Main.
Troubleshooting and safe recovery
If a bootstrap download, SDK installation, Verify report, Audit request, or Remove operation fails, follow Troubleshooting and safe recovery before deleting or replacing anything under dotnet-sdks. A failed Verify local check differs from temporarily unavailable Microsoft metadata, and a conflicting existing destination is deliberately preserved.