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.

Next steps