dotnetup in offline/air-gapped environments
- 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