dotnet / dotnet/core

Critical: .NET install domains and URLs are changing

Open
#9,671 51 comments 35 reactions 1 assignee Claimed by @richlander View on GitHub
Dominant language
PowerShell
Stars
22k
Forks
4.9k
Avg merge
5d 5h
Merged PRs (30d)
29

Description

.NET binaries and installers have moved to a new domain -- `builds.dotnet.microsoft.com` -- backed by a new Content Delivery Network (CDN). You may need to make changes to adjust.

Tracking issue: https://github.com/dotnet/core/issues/9674

> .NET Team Status:
> - azureedge.net scream tests are starting
> - See: https://github.com/dotnet/core/issues/9676
>
>
> Recommended action:
> - Read [Critical: .NET Install links are changing](https://devblogs.microsoft.com/dotnet/critical-dotnet-install-links-are-changing/) for an overview.
> - Update `azureedge.net` references
> - Update local copies of install script
> - Update pinned references to [actions/setup-dotnet](https://github.com/actions/setup-dotnet/issues/570)
> - Validate that firewall rules are resilient to using new domains.
>
> Last update: 2025.01.23
> Next update: 2025.02.04

## Context

Some .NET binaries and installers have been hosted on Azure Content Delivery Network (CDN) domains that end in `.azureedge.net`. These domains were hosted by [edg.io](https://edg.io/), which has [ceased operations](https://learn.microsoft.com/en-us/azure/cdn/edgio-retirement-faq) due to bankruptcy. We [migrated to a new CDN](https://learn.microsoft.com/azure/frontdoor/migrate-cdn-to-front-door) and will be using new domains going forward.

We expect`azureedge.net` domains to cease by 5/31 (at latest).

## .NET Team Remediation

New domains were created:

- `builds.dotnet.microsoft.com` for signed official builds
- `ci.dot.net` for unsigned builds

Test links for new CDN:

- https://builds.dotnet.microsoft.com/dotnet/health.txt
- https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json

Test links for old CDN:

- https://dotnetcli.azureedge.net/dotnet/health.txt
- https://dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json

The following resources have been updated to use new domains.

- [`releases-index.json`](https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json)
- [.NET install script](https://github.com/dotnet/install-scripts/)
- [actions/setup-dotnet](https://github.com/actions/setup-dotnet/issues/570)
- [CI short links](https://github.com/dotnet/arcade/pull/15365)

Other changes are in progress.

## User Remediation

Please make the following replacements:

- `dotnetcli.azureedge.net` -> `builds.dotnet.microsoft.com`
- `dotnetcli.blob.core.windows.net` -> `builds.dotnet.microsoft.com`
- `dotnetbuilds.azureedge.net` -> `ci.dot.net`
- `dotnetbuilds.blob.core.windows.net` -> `ci.dot.net`

All the new domains are path-compatible with old domains, as they share the same origin.

Please also make the following changes:

- Update local copies of the install script
- Update setup-dotnet Action references
- Validate that firewall rules work with the new domains

## Install script

The [.NET install script](https://learn.microsoft.com/dotnet/core/tools/dotnet-install-script) is used to install .NET from our CDN. We are changing CDNs (documented in a following section), which requires us to change the install script to use the new CDN.

Updated scripts:

- `https://dot.net/v1/dotnet-install.sh`
- `https://dot.net/v1/dotnet-install.ps1`

Notes:

- Users who have local copies of these scripts will need to update their copies.
- Users who rely on the remote copy (at the URLs above) do not need to do anything other than validate no observed change in behavior (due to new domains and CDNs being used).

Tracking PRs:

- [dotnet/install-scripts #554](https://github.com/dotnet/install-scripts/pull/554)
- [dotnet/install-scripts #555](https://github.com/dotnet/install-scripts/pull/555)
- [dotnet/install-scripts/issues #558](https://github.com/dotnet/install-scripts/issues/558)
- [dotnet/install-scripts #564](https://github.com/dotnet/install-scripts/pull/564)
- [dotnet/docs #44052](https://github.com/dotnet/docs/pull/44052)

## Official builds

Official builds and JSON files are hosted via a CDN, available for use by the install script and other installers.

- New: https://builds.dotnet.microsoft.com
- Old: https://dotnetcli.azureedge.net

Notes:

- Official builds are tested and signed by Microsoft. A `microsoft.com` domain was chosen to reflect that.
- We also [plan to stop using dowload.visualstudio.microsoft.com](https://github.com/dotnet/core/issues/9675) for new content. That CDN will continue to function.
- [Microsoft.Deployment.DotNet.Releases](https://www.nuget.org/packages/Microsoft.Deployment.DotNet.Releases) has been [updated](https://github.com/dotnet/deployment-tools/pull/423)

You can change from old to new domains by changing the domain section of the URL. The other parts of the URL do not need to change.

Example URLs:

- New: https://builds.dotnet.microsoft.com/dotnet/Runtime/8.0.11/dotnet-runtime-8.0.11-linux-x64.tar.gz
- Old: https://dotnetcli.azureedge.net/dotnet/Runtime/8.0.11/dotnet-runtime-8.0.11-linux-x64.tar.gz
- New: https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json
- Old: https://dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json

A set of short links are available for official builds.

Link pattern:`https://aka.ms/dotnet/[x.y]/[package]`.

Example URLs:

- https://aka.ms/dotnet/9.0/dotnet-sdk-win-x64.zip
- https://aka.ms/dotnet/8.0/aspnetcore-runtime-linux-x64.tar.gz

These links produce`301` HTTP results that forward to our CDN.

- Currently forward to: https://dotnetcli.azureedge.net.
- Will be changed to forward to: https://build.dotnet.microsoft.com.

We expect these links to be changed in mid January.

Tracking PR:

- [dotnet/core #9683](https://github.com/dotnet/core/issues/9683)

## CI builds

Continuous integration (CI) builds are hosted via a CDN, available via the install script and GitHub README files.

- New: https://ci.dot.net
- Old: https://dotnetbuilds.azureedge.net

Note: CI builds include a mix of tested and untested builds, signed and unsigned builds.

Example URLs:

- New: https://ci.dot.net/public/Runtime/9.0.1-servicing.24610.11/dotnet-runtime-9.0.1-win-x64.exe
- Old: https://dotnetbuilds.azureedge.net/public/Runtime/9.0.1-servicing.24610.11/dotnet-runtime-9.0.1-win-x64.exe

A set of short links are available for CI builds.

Link pattern:`https://aka.ms/dotnet/[x.y]/daily/[package]`.

Example URLs:

- https://aka.ms/dotnet/9.0/daily/dotnet-runtime-win-x64.exe
- https://aka.ms/dotnet/9.0/daily/aspnetcore-runtime-linux-arm.tar.gz
- https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.pkg

These links produce`301` HTTP results that forward to our CDN.

- New builds now forward to: https://ci.dot.net
- Old builds forward to: https://dotnetbuilds.azureedge.net.

We expect these links to be changed in mid January.

Tracking PR:

- [dotnet/core #9683](https://github.com/dotnet/core/issues/9683)

CI build pages use the CI short links.

Example build pages:

- [dotnet/runtime](https://github.com/dotnet/runtime/blob/main/docs/project/dogfooding.md#daily-builds-table)
- [dotnet/aspnetcore](https://github.com/dotnet/aspnetcore/blob/main/README.md#nightly-builds)
- [dotnet/sdk](https://github.com/dotnet/sdk/blob/main/documentation/package-table.md)

## Azure DevOps and GitHub Actions

- Major versions tags for [actions/setup-dotnet](https://github.com/actions/setup-dotnet/issues/570) have been updated. References to pinned versions will require updating to the most recent version.
- We expect that GitHub Enterprise Server will be addressed in January.
- Azure DevOps [`UseDotnetTask`](https://learn.microsoft.com/azure/devops/pipelines/tasks/reference/use-dotnet-v2?view=azure-pipelines) will be updated in January
- We do not yet have a date for updating [Azure DevOps Server](https://learn.microsoft.com/azure/devops/server/).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.