dotnet / dotnet/vscode-dotnet-runtime
Support explicit system-wide .NET runtime installation for extension clients
- Dominant language
- TypeScript
- Stars
- 209
- Forks
- 455
- PR merge metrics
- No merged PRs in 30d
Description
### Motivation
C# Dev Kit Workspace Requirements discovers target framework requirements only after restore/design-time build and needs to remediate missing target runtime bands without installing a full SDK or using a private extension root.
### Existing Behavior
Currently, local `dotnet.acquire` and global `dotnet.acquireGlobalSDK` exist, but there is no system-wide runtime/ASP.NET Core API.
### Proposed API
We propose a new `dotnet.acquireGlobalRuntime` command accepting the existing `IDotnetAcquireContext` object:
- Required parameters: `version`, `requestingExtensionId`, `installType: 'global'`, and a mode specifying either `runtime` or `aspnetcore`.
- Return type: `IDotnetAcquireResult`.
This is explicitly opt-in by the calling extension and does not change any default/local acquisition behaviors.
### Compatibility & Security
- Preserve all existing APIs.
- Use official installers.
- Utilize existing elevation/hash/domain checks.
- Platform behavior is consistent with global SDK acquisition.
### Acceptance Criteria
- Acceptance criteria for Windows/macOS/Linux where supported.
- Release metadata resolution for `runtime` and `aspnetcore`.
- Unit/integration tests.
- Command documentation and code sample.
I intend to update WIP PR #2573 to implement it.
Contributor guide
Research direction
Start by reviewing the existing dotnet.acquire and dotnet.acquireGlobalSDK APIs and the proposed WIP PR #2573. Trace how IDotnetAcquireContext, IDotnetAcquireResult, release metadata resolution, installers, and elevation/hash/domain checks are handled. Done includes the global runtime command for runtime and aspnetcore modes, supported-platform tests, documentation, and a code sample.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100