Skip to content

[release/9.0] Add .slnx fallback for TestHost content root discovery#64953

Merged
wtgodbe merged 2 commits intorelease/9.0from
copilot/update-webhostbuilderextensions-behavior
Jan 13, 2026
Merged

[release/9.0] Add .slnx fallback for TestHost content root discovery#64953
wtgodbe merged 2 commits intorelease/9.0from
copilot/update-webhostbuilderextensions-behavior

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 6, 2026

Add .slnx fallback for TestHost content root discovery

Description

This pull request adds .slnx fallback support to the test-only UseSolutionRelativeContentRoot method in the Microsoft.AspNetCore.TestHost. When searching for solution files with the *.sln pattern, the method now falls back to searching for .slnx files if no .sln file is found, preventing the InvalidOperationException that would previously occur before test developers can easily call UseSolutionRelativeContentRoot themselves.

This has already been fixed in .NET 10 by #61305, but that included public API changes, so this is not a direct backport. Unlike, the .NET 10 change that treats .slnx and .sln equivalently by default, this change will only fall back to looking for an *.slnx file if the test server would otherwise throw an InvalidOperationException due to not being able to find an ".sln" file.

Fixes #61304 in .NET 9.

Customer Impact

#61304 has gotten a lot of attention, because it is a pain point for migrating solution from .sln to .slnx.

System.InvalidOperationException : Solution root could not be located using application root C:\Project\Path\bin\Debug\net9.0\

Stack Trace:
 at Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(IWebHostBuilder builder, String solutionRelativePath, String applicationBasePath, String solutionName)
 at Microsoft.AspNetCore.TestHost.WebHostBuilderExtensions.UseSolutionRelativeContentRoot(IWebHostBuilder builder, String solutionRelativePath, String solutionName)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.SetContentRoot(IWebHostBuilder builder)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.<ConfigureHostBuilder>b__22_0(IWebHostBuilder webHostBuilder)
 at Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions.ConfigureWebHost(IHostBuilder builder, Func`3 createWebHostBuilder, Action`1 configure, Action`1 configureWebHostBuilder)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.EnsureServer()
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options)
 at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient()

Test projects that worked fine with an .sln-based solution throw after migrating to *.slnx before developers even get access to the IWebHostBuilder, so they don't get the opportunity to easily manually reconfigure the content root by calling UseSolutionRelativeContentRoot with "*.slnx". Instead, the current general workaround is fragile and unintuitive:

public static class MvcTestingAppManifestHelper
{
    private const string ManifestFileName = "MvcTestingAppManifest.json";
    private static readonly JsonSerializerOptions JsonSerializerOptions = new() { WriteIndented = true };

    public static void AddAssemblyToManifest(Assembly assembly)
    {
        if (!File.Exists(ManifestFileName))
        {
            return;
        }

        // The manifest file is a dictionary of Assembly.FullName to ContentRoot.
        var manifest = JsonSerializer.Deserialize<Dictionary<string, string>>(File.ReadAllText(ManifestFileName))!;

        // Internally, the tilde is used to translate the content root to the AppContext.BaseDirectory.
        if (manifest.TryAdd(assembly.FullName!, "~"))
        {
            File.WriteAllText(ManifestFileName, JsonSerializer.Serialize(manifest, JsonSerializerOptions));
        }
    }
}

#61304 (comment)

Regression?

  • Yes
  • No

Not technically, but you could consider it a regression in behavior when migrating from .sln to .slnx solutions.

Risk

  • High
  • Medium
  • Low

This change only has an impact if starting the test server would otherwise throw an InvalidOperationException early during initialization due to not being able to find an ".sln" file.

Verification

  • Manual (required)
  • Automated

Packaging changes reviewed?

  • Yes
  • No
  • N/A

  • Add non-breaking .slnx fallback for content root lookup.

Description

Problem: UseSolutionRelativeContentRoot threw when only a .slnx existed, and .slnx could shadow .sln in parents.
Changes:

  • Keep .sln precedence; if none found, retry search for .slnx without changing API.
  • Added focused tests validating .sln preference and .slnx fallback discovery.

Example:

new WebHostBuilder()
    .UseSolutionRelativeContentRoot("src/MyApp", appBasePath, "*.sln"); // now falls back to slnx if no sln
Original prompt

Create a variant of #61305 that contains no breaking API changes. It should also avoid the behavioral breaking change when you could technically have a .slnx file that then "shadows" a .sln file in a parent folder. The only behavioral change is that it should not throw the InvalidOperationException from https://github.com/dotnet/aspnetcore/blob/release/9.0/src/Hosting/TestHost/src/WebHostBuilderExtensions.cs#L166 if there was an "*.slnx" file.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: halter73 <54385+halter73@users.noreply.github.com>
Copilot AI changed the title [WIP] Update WebHostBuilderExtensions to avoid exception with .slnx file Add .slnx fallback for TestHost content root discovery Jan 6, 2026
Copilot AI requested a review from halter73 January 6, 2026 23:40
@halter73 halter73 marked this pull request as ready for review January 8, 2026 16:49
Copilot AI review requested due to automatic review settings January 8, 2026 16:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds non-breaking .slnx fallback support to the UseSolutionRelativeContentRoot method in TestHost. When searching for solution files with the "*.sln" pattern, the method now falls back to searching for .slnx files if no .sln file is found, preventing the InvalidOperationException that would previously occur.

Key changes:

  • Added .slnx fallback logic that only activates when no .sln file is found and the search pattern is "*.sln"
  • Maintained .sln precedence to avoid breaking changes where .slnx files could shadow .sln files in parent directories
  • Added comprehensive tests validating both the fallback behavior and .sln precedence

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/Hosting/TestHost/src/WebHostBuilderExtensions.cs Added conditional .slnx fallback logic after .sln search fails, maintaining backward compatibility
src/Hosting/TestHost/test/WebHostBuilderExtensionsTests.cs New test file with two tests: one verifying .slnx fallback and one verifying .sln takes precedence over .slnx

@halter73
Copy link
Copy Markdown
Member

halter73 commented Jan 9, 2026

/backport to release/8.0

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 9, 2026

Started backporting to release/8.0 (link to workflow run)

@halter73 halter73 changed the title Add .slnx fallback for TestHost content root discovery [release/9.0] Add .slnx fallback for TestHost content root discovery Jan 10, 2026
@halter73 halter73 added the Servicing-consider Shiproom approval is required for the issue label Jan 10, 2026
@rbhanda rbhanda added Servicing-approved Shiproom has approved the issue and removed Servicing-consider Shiproom approval is required for the issue labels Jan 12, 2026
@wtgodbe wtgodbe merged commit 0e42d40 into release/9.0 Jan 13, 2026
30 of 31 checks passed
@wtgodbe wtgodbe deleted the copilot/update-webhostbuilderextensions-behavior branch January 13, 2026 00:13
@dotnet-policy-service dotnet-policy-service bot modified the milestones: 9.0.x, 9.0.13 Jan 13, 2026
CteNerd pushed a commit to CteNerd/thc-meal-planner-app that referenced this pull request Apr 6, 2026
…14 (#27)

Updated
[Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/aspnetcore)
from 9.0.0 to 9.0.14.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.AspNetCore.Authentication.JwtBearer's
releases](https://github.com/dotnet/aspnetcore/releases)._

## 9.0.14

[Release](https://github.com/dotnet/core/releases/tag/v9.0.14)

## What's Changed
* Update branding to 9.0.14 by @​vseanreesermsft in
dotnet/aspnetcore#65294
* [release/9.0] (deps): Bump src/submodules/googletest from `9156d4c` to
`56efe39` by @​dependabot[bot] in
dotnet/aspnetcore#65290
* [release/9.0] Remove package baseline by @​Copilot in
dotnet/aspnetcore#65208
* [release/9.0] Set network isolation policy for aspnetcore-ci by
@​github-actions[bot] in dotnet/aspnetcore#65172
* [release/9.0] Package dotnet-getdocument from current TFM into
top-level by @​wtgodbe in
dotnet/aspnetcore#65164
* [release/9.0] Fix URL format for JDK download on linux by
@​github-actions[bot] in dotnet/aspnetcore#65075
* [release/9.0] Disable parallel restore for Grpc JsonTranscoding by
@​github-actions[bot] in dotnet/aspnetcore#65072
* [release/9.0] Update Ubuntu queue to 22.04 by @​wtgodbe in
dotnet/aspnetcore#65298
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#65117
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#65089
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#65365
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#65364
* [release/9.0] Disable parallel restore for linker tests by
@​github-actions[bot] in dotnet/aspnetcore#65374
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#65381
* [release/9.0] Switch to non-preview 2022 queue by
@​github-actions[bot] in dotnet/aspnetcore#65412


**Full Changelog**:
dotnet/aspnetcore@v9.0.13...v9.0.14

## 9.0.13

[Release](https://github.com/dotnet/core/releases/tag/v9.0.13)

## What's Changed
* Update branding to 9.0.13 by @​vseanreesermsft in
dotnet/aspnetcore#64938
* [release/9.0] (deps): Bump src/submodules/googletest from `1b96fa1` to
`9156d4c` by @​dependabot[bot] in
dotnet/aspnetcore#64908
* [release/9.0] Pass container image correctly for source-build job in
official build by @​akoeplinger in
dotnet/aspnetcore#64781
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64686
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64685
* [release/9.0] Update gradle by @​github-actions[bot] in
dotnet/aspnetcore#64980
* Backport #​64657: Use shallow clones for CI jobs by @​Copilot in
dotnet/aspnetcore#64677
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#65012
* [release/9.0] Add .slnx fallback for TestHost content root discovery
by @​Copilot in dotnet/aspnetcore#64953
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#65046


**Full Changelog**:
dotnet/aspnetcore@v9.0.12...v9.0.13)

## 9.0.12

[Release](https://github.com/dotnet/core/releases/tag/v9.0.12)

## What's Changed
* Update branding to 9.0.12 by @​vseanreesermsft in
dotnet/aspnetcore#64248
* Update `Microsoft.Build` versions to 17.8.43 by @​MackinnonBuck in
dotnet/aspnetcore#64277
* [release/9.0] (deps): Bump src/submodules/googletest from `9706f75` to
`6ec14df` by @​dependabot[bot] in
dotnet/aspnetcore#64230
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64111
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64065
* [release/9.0] Upgrade to MacOS 15 for CI by @​wtgodbe in
dotnet/aspnetcore#64310
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#64312
* [release/9.0] Don't use netcoreapp2.1 in dotnet-get-document by
@​wtgodbe in dotnet/aspnetcore#64351
* [release/9.0] AppContext for HttpSys CBT hardening by @​BrennanConroy
in dotnet/aspnetcore#64297
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64350
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64388
* [release/9.0] Delete signalr-daily-tests.yml by @​github-actions[bot]
in dotnet/aspnetcore#64589
* [release/9.0] (deps): Bump src/submodules/googletest from `6ec14df` to
`1b96fa1` by @​dependabot[bot] in
dotnet/aspnetcore#64580
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#64503


**Full Changelog**:
dotnet/aspnetcore@v9.0.11...v9.0.12

## 9.0.11

[Release](https://github.com/dotnet/core/releases/tag/v9.0.11)

## What's Changed
* Update branding to 9.0.11 by @​vseanreesermsft in
dotnet/aspnetcore#63950
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63677
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63678
* [release/9.0] (deps): Bump src/submodules/googletest from `eb2d85e` to
`9706f75` by @​dependabot[bot] in
dotnet/aspnetcore#63894
* [release/9.0] Fixed devtools url used for debug with chrome and edge
by @​github-actions[bot] in
dotnet/aspnetcore#61948
* [release/9.0] (http2): Lower WINDOWS_UPDATE received on (half)closed
stream to stream abortion by @​DeagleGross in
dotnet/aspnetcore#63934
* [release/9.0] Re-quarantine
ServerRoutingTest.NavigationLock_OverlappingNavigationsCancelExistingNavigations_HistoryNavigation
by @​github-actions[bot] in
dotnet/aspnetcore#63956
* [release/9.0] Fix nginx install on mac, linux by @​wtgodbe in
dotnet/aspnetcore#63966
* [Hot Reload] Do not attempt to apply empty deltas. by @​tmat in
dotnet/aspnetcore#63979
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#64036
* Revert log level severity for unknown proxy in
ForwardedHeadersMiddleware by @​BrennanConroy in
dotnet/aspnetcore#64091
* Set timeoutInMinutes to 0 for Windows build job by @​vseanreesermsft
in dotnet/aspnetcore#64126


**Full Changelog**:
dotnet/aspnetcore@v9.0.10...v9.0.11

## 9.0.10

[Release](https://github.com/dotnet/core/releases/tag/v9.0.10)

## What's Changed
* Update branding to 9.0.10 by @​vseanreesermsft in
dotnet/aspnetcore#63510
* [9.0] Make duplicate deb/rpm packages so we can sign them with the new
PMC key by @​jkoritzinsky in
dotnet/aspnetcore#63249
* [release/9.0] Extend Unofficial 1ES template in IdentityModel nightly
tests job by @​github-actions[bot] in
dotnet/aspnetcore#63465
* [release/9.0] (deps): Bump src/submodules/googletest from `373af2e` to
`eb2d85e` by @​dependabot[bot] in
dotnet/aspnetcore#63501
* [release/9.0] Quarantine ResponseBody_WriteContentLength_PassedThrough
by @​wtgodbe in dotnet/aspnetcore#63533
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63304
* [release/9.0] [OpenAPI] Use invariant culture for TextWriter by
@​martincostello in dotnet/aspnetcore#62239
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63303
* Unquarantine `RadioButtonGetsResetAfterSubmittingEnhancedForm` by
@​ilonatommy in dotnet/aspnetcore#63556
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63577
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#63604
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63648
* backport(9.0): Fix runtime architecture detection logic in ANCM. by
@​DeagleGross in dotnet/aspnetcore#63707


**Full Changelog**:
dotnet/aspnetcore@v9.0.9...v9.0.10

## 9.0.9

[Release](https://github.com/dotnet/core/releases/tag/v9.0.9)

## What's Changed
* Update branding to 9.0.9 by @​vseanreesermsft in
dotnet/aspnetcore#63107
* [release/9.0] (deps): Bump src/submodules/googletest from `c67de11` to
`373af2e` by @​dependabot[bot] in
dotnet/aspnetcore#63035
* [release/9.0] Dispose the certificate chain elements with the chain by
@​github-actions[bot] in dotnet/aspnetcore#62992
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#62702
* [release/9.0] Update Microsoft.Build versions by @​wtgodbe in
dotnet/aspnetcore#62505
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#62832
* [release/9.0] Update SignalR Redis tests to use internal Docker Hub
mirror by @​github-actions[bot] in
dotnet/aspnetcore#63116
* [release/9.0] [SignalR] Don't throw for message headers in Java client
by @​github-actions[bot] in
dotnet/aspnetcore#62783
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#63151
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63190
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro[bot] in dotnet/aspnetcore#63214


**Full Changelog**:
dotnet/aspnetcore@v9.0.8...v9.0.9

## 9.0.7

[Release](https://github.com/dotnet/core/releases/tag/v9.0.7)

## What's Changed
* Update branding to 9.0.7 by @​vseanreesermsft in
dotnet/aspnetcore#62242
* [release/9.0] (deps): Bump src/submodules/googletest from `04ee1b4` to
`e9092b1` by @​dependabot in
dotnet/aspnetcore#62199
* Fix OpenApiJsonSchema array parsing (#​62051) by @​BrennanConroy in
dotnet/aspnetcore#62118
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#61986
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#61945
* [release/9.0] Update Alpine helix references by @​wtgodbe in
dotnet/aspnetcore#62240
* [Backport 9.0] [IIS] Manually parse exe bitness (#​61894) by
@​BrennanConroy in dotnet/aspnetcore#62038
* [release/9.0] Associate tagged keys with entries so replacements are
not evicted by @​github-actions in
dotnet/aspnetcore#62248
* [release/9.0] Block test that is failing after switching to
latest-chrome by @​github-actions in
dotnet/aspnetcore#62283
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#62281
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#62282
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#62303


**Full Changelog**:
dotnet/aspnetcore@v9.0.6...v9.0.7

## 9.0.6

## Bug Fixes

- **Forwarded Headers Middleware: Ignore X-Forwarded-Headers from
Unknown Proxy**
([#​61622](dotnet/aspnetcore#61622))
The Forwarded Headers Middleware now ignores `X-Forwarded-Headers` sent
from unknown proxies. This change improves security by ensuring that
only trusted proxies can influence forwarded header values, preventing
potential spoofing or misrouting issues.

## Dependency Updates

- **Bump src/submodules/googletest from `52204f7` to `04ee1b4`**
([#​61762](dotnet/aspnetcore#61762))
Updates the GoogleTest submodule to a newer commit, bringing in the
latest improvements and bug fixes from the upstream project.
- **Update dependencies from dotnet/arcade**
([#​61714](dotnet/aspnetcore#61714))
Updates internal build and infrastructure dependencies from the
dotnet/arcade repository, ensuring compatibility and access to the
latest build tools.
- **Update dependencies from dotnet/extensions**
([#​61571](dotnet/aspnetcore#61571))
Refreshes dependencies from the dotnet/extensions repository,
incorporating the latest features and fixes from the extensions
libraries.
- **Update dependencies from dotnet/extensions**
([#​61877](dotnet/aspnetcore#61877))
Further updates dependencies from dotnet/extensions, ensuring the
project benefits from recent improvements and bug fixes.
- **Update dependencies from dotnet/arcade**
([#​61892](dotnet/aspnetcore#61892))
Additional updates to build and infrastructure dependencies from
dotnet/arcade, maintaining up-to-date tooling and build processes.

## Miscellaneous

- **Update branding to 9.0.6**
([#​61831](dotnet/aspnetcore#61831))
Updates the project version and branding to 9.0.6, reflecting the new
release and ensuring version consistency across the codebase.
- **Merging internal commits for release/9.0**
([#​61925](dotnet/aspnetcore#61925))
Incorporates various internal commits into the release/9.0 branch,
ensuring that all relevant changes are included in this release.

---

This summary is generated and may contain inaccuracies. For complete
details, please review the linked pull requests.

Full Changelog:
[v9.0.5...v9.0.6](dotnet/aspnetcore@v9.0.5...v9.0.6)

## 9.0.5

[Release](https://github.com/dotnet/core/releases/tag/v9.0.5)

## What's Changed
* Update branding to 9.0.5 by @​vseanreesermsft in
dotnet/aspnetcore#61284
* [release/9.0] (deps): Bump src/submodules/googletest from `24a9e94` to
`52204f7` by @​dependabot in
dotnet/aspnetcore#61261
* [release/9.0] Upgrade to Ubuntu 22 by @​github-actions in
dotnet/aspnetcore#61215
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#60964
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#60902
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#61355
* [release/9.0] Caching SERedis critical bugfix; defer HC metadata
detection because of DI cycle by @​github-actions in
dotnet/aspnetcore#60916
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#61354
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#61393
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#61412
* Revert "Revert "[release/9.0] Update remnants of azureedge.net"" by
@​wtgodbe in dotnet/aspnetcore#60353
* [release/9.0] Fix preserving messages for stateful reconnect with
backplane by @​github-actions in
dotnet/aspnetcore#61374
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#61483
* [Identity] Fix Identity UI asset definitions by @​javiercn in
dotnet/aspnetcore#59100


**Full Changelog**:
dotnet/aspnetcore@v9.0.4...v9.0.5

## 9.0.4

[Release](https://github.com/dotnet/core/releases/tag/v9.0.4)

## What's Changed
* Update branding to 9.0.4 by @​vseanreesermsft in
dotnet/aspnetcore#60785
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#60445
* [release/9.0] (deps): Bump src/submodules/googletest from `e235eb3` to
`24a9e94` by @​dependabot in
dotnet/aspnetcore#60678
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#60356
* Fix OpenAPI server URLs for Aspire scenarios by @​captainsafia in
dotnet/aspnetcore#60673
* Fix self-referential schema handling in collection schemas by
@​captainsafia in dotnet/aspnetcore#60410
* [release/9.0] [Blazor] Fix custom elements JS assets not being
included in build output by @​MackinnonBuck in
dotnet/aspnetcore#60858
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#60880


**Full Changelog**:
dotnet/aspnetcore@v9.0.3...v9.0.4

## 9.0.3

[Release](https://github.com/dotnet/core/releases/tag/v9.0.3)

## What's Changed
* Update branding to 9.0.3 by @​vseanreesermsft in
dotnet/aspnetcore#60198
* [release/9.0] Fix branding by @​wtgodbe in
dotnet/aspnetcore#60029
* [release/9.0] Update to MacOS 15 in Helix by @​github-actions in
dotnet/aspnetcore#60238
* [release/9.0] Revert "Revert "Use the latest available jdk"" by
@​github-actions in dotnet/aspnetcore#60229
* [release/9.0] Update `HtmlAttributePropertyHelper` to correctly follow
the `MetadataUpdateHandlerAttribute` contract by @​github-actions in
dotnet/aspnetcore#59908
* [release/9.0] Fix skip condition for java tests by @​github-actions in
dotnet/aspnetcore#60242
* [release/9.0] (deps): Bump src/submodules/googletest from `7d76a23` to
`e235eb3` by @​dependabot in
dotnet/aspnetcore#60151
* [release/9.0] Readd DiagnosticSource to KestrelServerImpl by
@​github-actions in dotnet/aspnetcore#60202
* [release/9.0] Redis distributed cache: add HybridCache usage signal by
@​github-actions in dotnet/aspnetcore#59886
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#59952
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#59951
* [release/9.0] Update remnants of azureedge.net by @​sebastienros in
dotnet/aspnetcore#60263
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#60291
* [release/9.0] Centralize on one docker container by @​wtgodbe in
dotnet/aspnetcore#60298
* Revert "[release/9.0] Update remnants of azureedge.net" by @​wtgodbe
in dotnet/aspnetcore#60323
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#60317


**Full Changelog**:
dotnet/aspnetcore@v9.0.2...v9.0.3

## 9.0.2

[Release](https://github.com/dotnet/core/releases/tag/v9.0.2)

## What's Changed
* Update branding to 9.0.2 by @​vseanreesermsft in
dotnet/aspnetcore#59757
* [release/9.0] Update dependencies from dotnet/source-build-externals
by @​dotnet-maestro in dotnet/aspnetcore#59267
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#59266
* [release/9.0] Update OSX helix queue by @​github-actions in
dotnet/aspnetcore#59743
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#59728
* [release/9.0] (deps): Bump src/submodules/googletest from `d144031` to
`7d76a23` by @​dependabot in
dotnet/aspnetcore#59679
* [release/9.0] Skip tests on internal queues too by @​github-actions in
dotnet/aspnetcore#59578
* [release/9.0] Fix loading dotnet user-jwts config by @​github-actions
in dotnet/aspnetcore#59473
* [release/9.0] Fix MultipartReaderStream synchronous read when using
buffer offset by @​github-actions in
dotnet/aspnetcore#59422
* [release/9.0] Update dependencies from dotnet/xdt by @​dotnet-maestro
in dotnet/aspnetcore#59419
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#59611
* [release/9.0] Fix Kestrel host header mismatch handling when port in
Url by @​github-actions in
dotnet/aspnetcore#59362
* Migrate off of Fedora 38 by @​v-firzha in
dotnet/aspnetcore#59613
* [release/9.0] [Blazor WASM standalone] Avoid caching `index.html`
during development by @​MackinnonBuck in
dotnet/aspnetcore#59348
* [release/9.0] Update to Fedora 41 by @​github-actions in
dotnet/aspnetcore#59816
* [release/9.0] Don't throw exception for parameters with custom binding
source by @​github-actions in
dotnet/aspnetcore#59533
* [release/9.0] Apply schema transformer to AdditionalProperties by
@​github-actions in dotnet/aspnetcore#59730
* [release/9.0] Harden schema reference transformer for relative
references by @​captainsafia in
dotnet/aspnetcore#59779
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#59847
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#59848
* [release/9.0] Return 206 Partial Content on Valid Range for Static
Assets by @​github-actions in
dotnet/aspnetcore#59325
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#59871


**Full Changelog**:
dotnet/aspnetcore@v9.0.1...v9.0.2

## 9.0.1

[Release](https://github.com/dotnet/core/releases/tag/v9.0.1)

## What's Changed
* Merging internal commits for release/9.0 by @​vseanreesermsft in
dotnet/aspnetcore#58900
* [release/9.0] Prevent unnecessary debugger stops for user-unhandled
exceptions in Blazor apps with Just My Code enabled by @​halter73 in
dotnet/aspnetcore#58573
* Hot Reload agent improvements by @​tmat in
dotnet/aspnetcore#58333
* [release/9.0] Update dependencies from roslyn by @​wtgodbe in
dotnet/aspnetcore#59183
* [release/9.0] Add direct reference to System.Drawing.Common in tools
by @​wtgodbe in dotnet/aspnetcore#59189
* [release/9.0] Harden parsing of [Range] attribute values by
@​github-actions in dotnet/aspnetcore#59077
* [release/9.0] Update dependencies from dotnet/source-build-externals
by @​dotnet-maestro in dotnet/aspnetcore#59143
* [release/9.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro in dotnet/aspnetcore#59024
* [release/9.0] (deps): Bump src/submodules/googletest from `6dae7eb` to
`d144031` by @​dependabot in
dotnet/aspnetcore#59032
* [release/9.0] Update dependencies from dotnet/xdt by @​dotnet-maestro
in dotnet/aspnetcore#58589
* [release/9.0] Update dependencies from dotnet/extensions by
@​dotnet-maestro in dotnet/aspnetcore#58675
* [release/9.0] Fix SignalR Java POM to include description by
@​github-actions in dotnet/aspnetcore#58896
* [release/9.0] Fix IIS outofprocess to remove WebSocket compression
handshake by @​github-actions in
dotnet/aspnetcore#58931


**Full Changelog**:
dotnet/aspnetcore@v9.0.0...v9.0.1

Commits viewable in [compare
view](dotnet/aspnetcore@v9.0.0...v9.0.14).
</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Servicing-approved Shiproom has approved the issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants