[release/9.0] Add .slnx fallback for TestHost content root discovery#64953
Merged
wtgodbe merged 2 commits intorelease/9.0from Jan 13, 2026
Merged
Conversation
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
halter73
approved these changes
Jan 8, 2026
Contributor
There was a problem hiding this comment.
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 |
Member
|
/backport to release/8.0 |
Contributor
|
Started backporting to |
10 tasks
halter73
approved these changes
Jan 9, 2026
BrennanConroy
approved these changes
Jan 10, 2026
This was referenced Apr 2, 2026
Open
Open
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add .slnx fallback for TestHost content root discovery
Description
This pull request adds
.slnxfallback support to the test-onlyUseSolutionRelativeContentRootmethod in theMicrosoft.AspNetCore.TestHost. When searching for solution files with the*.slnpattern, the method now falls back to searching for.slnxfiles if no.slnfile is found, preventing theInvalidOperationExceptionthat would previously occur before test developers can easily callUseSolutionRelativeContentRootthemselves.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
.slnxand.slnequivalently by default, this change will only fall back to looking for an*.slnxfile if the test server would otherwise throw anInvalidOperationExceptiondue 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
.slnto.slnx.Test projects that worked fine with an
.sln-based solution throw after migrating to*.slnxbefore developers even get access to theIWebHostBuilder, so they don't get the opportunity to easily manually reconfigure the content root by callingUseSolutionRelativeContentRootwith "*.slnx". Instead, the current general workaround is fragile and unintuitive:#61304 (comment)
Regression?
Not technically, but you could consider it a regression in behavior when migrating from
.slnto.slnxsolutions.Risk
This change only has an impact if starting the test server would otherwise throw an
InvalidOperationExceptionearly during initialization due to not being able to find an ".sln" file.Verification
Packaging changes reviewed?
.slnxfallback for content root lookup.Description
Problem:
UseSolutionRelativeContentRootthrew when only a.slnxexisted, and.slnxcould shadow.slnin parents.Changes:
.slnprecedence; if none found, retry search for.slnxwithout changing API..slnpreference and.slnxfallback discovery.Example:
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.