dotnet / dotnet/sdk

dotnetup in offline/air-gapped environments

Open
#55,803 0 comments 0 reactions 0 assignees View on GitHub
Area-dotnetup untriaged
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

### Prerequisites

- [x] I have read the [dotnetup documentation](https://github.com/dotnet/sdk/tree/release/dnup/documentation/general/dotnetup).
- [x] I have searched for [existing dotnetup issues](https://github.com/dotnet/sdk/issues?q=is%3Aissue%20state%3Aopen%20label%3AArea-dotnetup).
- [x] I have searched for [existing dotnetup discussions](https://github.com/dotnet/sdk/discussions/categories/dotnetup).

### Issue type

Feature request

### Description

I would like to be able to use dotnetup to automatically install the latest available .NET SDK in an offline / mostly-air-gapped environment, i.e. some sort of custom channel or feed from where it can fetch the latest build in a series.

My use-case is I have a CI environment that does not allow full public internet access, I would like to not have to add all of the .NET installer URLs to the whitelist and vet the available SDK versions before they are usable.

I would like to be able to, roughly, take a new .NET SDK build and pop it on a server, perhaps update a json/yaml file, and now any of my builds with "sdk: X.Y.ZZZ" in their global.json would now pull the new .NET SDK vX.Y.ZZZ from the aforementioned server.

As a bonus it would be nice if after mirroring the SDK to my server, anyone using "dotnetup install latest" or "dotnetup sdk install" over "sdk=X.Y.ZZZ rollForward=latestPatch" could now use the new SDK build automatically, and if this would work with `--update-global-json` too.

I kind of expected #54018 to cover this but it seems to be discussing error handling instead.

I would expect this to be configured either at the machine/user level, repo level, by a CLI argument, or by an environment variable.

### dotnetup version

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the dotnetup documentation and the existing `dotnetup install latest` and `dotnetup sdk install` flows described in the issue. Define how a custom feed or channel would be configured at machine, user, repository, CLI, or environment level, including `global.json` and `--update-global-json` behavior. Done means an offline server can provide newer SDK builds without public installer URLs.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.