diff --git a/.openpublishing.redirection.core.json b/.openpublishing.redirection.core.json index 5f3df9aae20b7..b1729d00bc400 100644 --- a/.openpublishing.redirection.core.json +++ b/.openpublishing.redirection.core.json @@ -103,11 +103,15 @@ }, { "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/indexofanyvalues-renamed.md", - "redirect_url": "/dotnet/core/compatibility/serialization/8.0" + "redirect_url": "/dotnet/core/compatibility/8.0" }, { "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md", - "redirect_url": "/dotnet/core/compatibility/serialization/8.0" + "redirect_url": "/dotnet/core/compatibility/8.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/deployment/9.0/assembly-load-directory.md", + "redirect_url": "/dotnet/core/compatibility/9.0" }, { "source_path_from_root": "/docs/core/compatibility/extensions/6.0/bind-single-elements-to-array.md", diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index 1547f896347fa..a3969d610efc7 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -13,8 +13,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af [!INCLUDE [binary-source-behavioral](includes/binary-source-behavioral.md)] > [!NOTE] -> -> This article is a work in progress. It's not a complete list of breaking changes in .NET 10. To query breaking changes that are still pending publication, see [Issues of .NET](https://issuesof.net/?q=%20is:open%20-label:Documented%20is:issue%20(label:%22Breaking%20Change%22%20or%20label:breaking-change)%20(repo:dotnet/docs%20or%20repo:aspnet/Announcements)%20group:repo%20(label:%22:checkered_flag:%20Release:%20.NET%2010%22%20or%20label:10.0.0)%20sort:created-desc). +> This article is a work in progress. It's not a complete list of breaking changes in .NET 10. ## Containers diff --git a/docs/core/compatibility/9.0.md b/docs/core/compatibility/9.0.md index 630a6831a4874..2d89514047487 100644 --- a/docs/core/compatibility/9.0.md +++ b/docs/core/compatibility/9.0.md @@ -2,7 +2,7 @@ title: Breaking changes in .NET 9 titleSuffix: "" description: Navigate to the breaking changes in .NET 9. -ms.date: 04/03/2025 +ms.date: 03/26/2025 no-loc: [Blazor, Razor, Kestrel] --- # Breaking changes in .NET 9 @@ -11,10 +11,6 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff [!INCLUDE [binary-source-behavioral](includes/binary-source-behavioral.md)] -> [!NOTE] -> -> This article is a work in progress. It's not a complete list of breaking changes in .NET 9. To query breaking changes that are still pending publication, see [Issues of .NET](https://issuesof.net/?q=%20is:open%20-label:Documented%20is:issue%20(label:%22Breaking%20Change%22%20or%20label:breaking-change)%20(repo:dotnet/docs%20or%20repo:aspnet/Announcements)%20group:repo%20(label:%22:checkered_flag:%20Release:%20.NET%209%22%20or%20label:9.0.0)%20sort:created-desc). - ## ASP.NET Core | Title | Type of change | Introduced version | @@ -68,10 +64,9 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff ## Deployment -| Title | Type of change | Introduced version | -|-----------------------------------------------------------------------------------------------------------------|---------------------|--------------------| -| [Deprecated desktop Windows/macOS/Linux MonoVM runtime packages](deployment/9.0/monovm-packages.md) | Source incompatible | Preview 7 | -| [Assembly load directory resolves through symbolic links on Windows](deployment/9.0/assembly-load-directory.md) | Behavioral change | GA | +| Title | Type of change | Introduced version | +|-----------------------------------------------------------------------------------------------------|---------------------|--------------------| +| [Deprecated desktop Windows/macOS/Linux MonoVM runtime packages](deployment/9.0/monovm-packages.md) | Source incompatible | Preview 7 | ## Interop diff --git a/docs/core/compatibility/deployment/9.0/assembly-load-directory.md b/docs/core/compatibility/deployment/9.0/assembly-load-directory.md deleted file mode 100644 index 2cde6c982f214..0000000000000 --- a/docs/core/compatibility/deployment/9.0/assembly-load-directory.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Breaking change - Assembly load directory resolves through symbolic links on Windows" -description: "Learn about the breaking change in .NET 9 where the assembly load directory resolves through symbolic links." -ms.date: 4/3/2025 -ai-usage: ai-assisted -ms.custom: https://github.com/dotnet/docs/issues/45584 ---- - -# Assembly load directory resolves through symbolic links on Windows - -Starting in .NET 9, the .NET host resolves symbolic links before determining the assembly load directory when running on Windows. - -## Version introduced - -.NET 9 - -## Previous behavior - -The .NET host didn't resolve symbolic links before calculating load paths. Assembly loads were resolved relative to the symbolic link itself, not the destination of the link. - -For example, if an application was laid out as follows: - -``` -/myapp/ - myapp.exe - myapp.dll -``` - -And a symbolic link was created in another directory: - -``` -otherdir/ - myapp.exe -> /myapp/myapp.exe -``` - -Executing `otherdir/myapp.exe` would resolve loads relative to `otherdir/`, not `/myapp/`. - -## New behavior - -The .NET host now resolves the destination of a symbolic link before determining the assembly load directory. Assembly loads are resolved relative to the resolved location of the host file. - -Using the same example: - -``` -/myapp/ - myapp.exe - myapp.dll -``` - -With a symbolic link: - -``` -otherdir/ - myapp.exe -> /myapp/myapp.exe -``` - -Executing `otherdir/myapp.exe` resolves loads relative to `/myapp/`. Files in `otherdir/` are not considered. - -## Type of breaking change - -This is a [behavioral change](../../categories.md#behavioral-change). - -## Reason for change - -The previous behavior on Windows was undocumented, inconsistent with non-Windows implementations, and prevented supported use of symbolic links to the .NET host. This change ensures consistent behavior and enables scenarios where symbolic links to the .NET host are used properly. - -## Recommended action - -If your application relied on the previous behavior, ensure that all relevant binaries are located in the directory behind the symbolic link, rather than next to it. Avoid constructing a file layout that depends on the symbolic link's location. - -## Affected APIs - -None. diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index d38efc5450872..bd8dd49dadfdc 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -170,8 +170,6 @@ items: items: - name: Deprecated desktop Windows/macOS/Linux MonoVM runtime packages href: deployment/9.0/monovm-packages.md - - name: Assembly load directory resolves through symbolic links on Windows - href: deployment/9.0/assembly-load-directory.md - name: Entity Framework Core href: /ef/core/what-is-new/ef-core-9.0/breaking-changes?toc=/dotnet/core/compatibility/toc.json&bc=/dotnet/breadcrumb/toc.json - name: Interop @@ -1724,8 +1722,6 @@ items: items: - name: Deprecated desktop Windows/macOS/Linux MonoVM runtime packages href: deployment/9.0/monovm-packages.md - - name: Assembly load directory resolves through symbolic links on Windows - href: deployment/9.0/assembly-load-directory.md - name: .NET 8 items: - name: Host determines RID-specific assets diff --git a/docs/whats-new/dotnet-docs-mod1.md b/docs/whats-new/dotnet-docs-mod1.md index 20311f455781a..6f4174a24fd1d 100644 --- a/docs/whats-new/dotnet-docs-mod1.md +++ b/docs/whats-new/dotnet-docs-mod1.md @@ -14,7 +14,6 @@ Welcome to what's new in the .NET docs for April 2025. This article lists some o ### New articles - [.NET CLI `--interactive` defaults to `true` in user scenarios](../core/compatibility/sdk/10.0/dotnet-cli-interactive.md) -- [Assembly load directory resolves through symbolic links on Windows](../core/compatibility/deployment/9.0/assembly-load-directory.md) - [Default trace context propagator updated to W3C standard](../core/compatibility/core-libraries/10.0/default-trace-context-propagator.md) - [Linux native library resolution no longer uses `netcoredeps`](../core/compatibility/interop/8.0/linux-netcoredeps.md) - [Streaming HTTP responses enabled by default in browser HTTP clients](../core/compatibility/networking/10.0/default-http-streaming.md)