From e6e33892bf311ec2077b721c34e1d85705132b20 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 22 Jun 2022 10:58:27 -0700 Subject: [PATCH 1/3] x86 host path on x64/arm64 --- docs/core/compatibility/3.1.md | 6 +++- docs/core/compatibility/6.0.md | 8 ++++- docs/core/compatibility/7.0.md | 1 + .../deployment/7.0/x86-host-path.md | 36 +++++++++++++++++++ docs/core/compatibility/toc.yml | 16 +++++++++ 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 docs/core/compatibility/deployment/7.0/x86-host-path.md diff --git a/docs/core/compatibility/3.1.md b/docs/core/compatibility/3.1.md index 69a98c95acb7d..da9001c9eb646 100644 --- a/docs/core/compatibility/3.1.md +++ b/docs/core/compatibility/3.1.md @@ -1,7 +1,7 @@ --- title: Breaking changes in .NET Core 3.1 description: Lists the breaking changes in version 3.1 of .NET Core and ASP.NET Core. -ms.date: 11/25/2019 +ms.date: 06/22/2022 --- # Breaking changes in .NET Core 3.1 @@ -15,6 +15,10 @@ If you're migrating to version 3.1 of .NET Core or ASP.NET Core, the breaking ch *** +## Deployment + +[x86 host path on 64-bit Windows](deployment/7.0/x86-host-path.md) + ## MSBuild - [Design-time builds only return top-level package references](#design-time-builds-only-return-top-level-package-references) diff --git a/docs/core/compatibility/6.0.md b/docs/core/compatibility/6.0.md index 7fba17ffc5867..e391d571ae3d6 100644 --- a/docs/core/compatibility/6.0.md +++ b/docs/core/compatibility/6.0.md @@ -1,7 +1,7 @@ --- title: Breaking changes in .NET 6 description: Navigate to the breaking changes in .NET 6. -ms.date: 05/06/2021 +ms.date: 06/22/2022 no-loc: [Blazor, Razor, Kestrel] --- # Breaking changes in .NET 6 @@ -89,6 +89,12 @@ For information on other breaking changes for containers in .NET 6, see [.NET 6 | - | :-: | :-: | - | | [CreateEncryptor methods throw exception for incorrect feedback size](cryptography/6.0/cfb-mode-feedback-size-exception.md) | ❌ | ✔️ | Preview 7 | +## Deployment + +| Title | Binary compatible | Source compatible | Introduced | +| - | :-: | :-: | - | +| [x86 host path on 64-bit Windows](deployment/7.0/x86-host-path.md) | ✔️ | ✔️ | Servicing release | + ## Entity Framework Core [Breaking changes in EF Core 6](/ef/core/what-is-new/ef-core-6.0/breaking-changes) diff --git a/docs/core/compatibility/7.0.md b/docs/core/compatibility/7.0.md index b611ba1b410d6..95d2a7d1c182f 100644 --- a/docs/core/compatibility/7.0.md +++ b/docs/core/compatibility/7.0.md @@ -50,6 +50,7 @@ If you're migrating an app to .NET 7, the breaking changes listed here might aff | Title | Binary compatible | Source compatible | Introduced | | - | :-: | :-: | - | | [Multi-level lookup is disabled](deployment/7.0/multilevel-lookup.md) | ❌ | ✔️ | Preview 4 | +| [x86 host path on 64-bit Windows](deployment/7.0/x86-host-path.md) | ✔️ | ✔️ | Preview 6 | ## Networking diff --git a/docs/core/compatibility/deployment/7.0/x86-host-path.md b/docs/core/compatibility/deployment/7.0/x86-host-path.md new file mode 100644 index 0000000000000..84c9385eb43c0 --- /dev/null +++ b/docs/core/compatibility/deployment/7.0/x86-host-path.md @@ -0,0 +1,36 @@ +--- +title: "Breaking change: x86 host path on 64-bit Windows" +description: Learn about the breaking change in deployment where the 32-bit .NET host isn't added to PATH on 64-bit Windows platforms. +ms.date: 06/22/2022 +--- +# x86 host path on 64-bit Windows + +The x86 versions of .NET installers for Windows have been modified to no longer add the x86 host location (*Program Files (x86)\dotnet*) to the `PATH` environment variable on 64-bit Windows systems. + +This change affects .NET Core 3.1, .NET 6, .NET 7, and future versions. + +## Previous behavior + +The x86 host location was added to `PATH`, even on x64/arm64 systems. Depending on which .NET architecture installer was run first, a user's machine could have either the native (x64/arm64) or x86 host listed first in `PATH`. + +## New behavior + +Going forward, the x86 host location is only added to the `PATH` environment variable on x86 systems. + +## Version introduced + +.NET 7 Preview 6 + +## Reason for change + +Currently, the x86 host location is added to `PATH`, even on x64/arm64 systems. Depending on which .NET architecture installer is run first, a user's machine could have either the native (x64/arm64) or the x86 host as the first location in the `PATH` list. This ambiguity causes problems with the initial .NET installation and during .NET servicing events. Any of these installation scenarios can modify the order of .NET hosts in `PATH`, making it non-deterministic. There's a high chance of behavior regression of the .NET runtime. + +This change streamlines the .NET host experience on Windows 64-bit systems. Only 64-bit hosts will be available in the system's `PATH` environment variable: the x64 host on x64 systems and the arm64 host on arm64 systems. We removed the ambiguity in the of order of .NET hosts in `PATH`, and only one host will be present. + +## Recommended action + +If you need the x86 host in the `PATH` environment variable on x64/arm64 systems, add the host location to `PATH` manually. + +## Affected APIs + +None. diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index 4ee4668cf1ade..3abb3c1ed5af6 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -65,6 +65,8 @@ items: items: - name: Multi-level lookup is disabled href: deployment/7.0/multilevel-lookup.md + - name: x86 host path on 64-bit Windows + href: deployment/7.0/x86-host-path.md - name: Networking items: - name: AllowRenegotiation default is false @@ -205,6 +207,10 @@ items: items: - name: CreateEncryptor methods throw exception for incorrect feedback size href: cryptography/6.0/cfb-mode-feedback-size-exception.md + - name: Deployment + items: + - name: x86 host path on 64-bit Windows + href: deployment/7.0/x86-host-path.md - name: Entity Framework Core href: /ef/core/what-is-new/ef-core-6.0/breaking-changes?toc=/dotnet/core/compatibility/toc.json&bc=/dotnet/breadcrumb/toc.json - name: Extensions @@ -905,6 +911,16 @@ items: items: - name: Multi-level lookup is disabled href: deployment/7.0/multilevel-lookup.md + - name: x86 host path on 64-bit Windows + href: deployment/7.0/x86-host-path.md + - name: .NET 6 + items: + - name: x86 host path on 64-bit Windows + href: deployment/7.0/x86-host-path.md + - name: .NET Core 3.1 + items: + - name: x86 host path on 64-bit Windows + href: deployment/7.0/x86-host-path.md - name: Entity Framework Core items: - name: EF Core 6 From e841000e3703980425ffa0162356d983100c4816 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 27 Jun 2022 15:12:56 -0700 Subject: [PATCH 2/3] Arm64 casing --- docs/core/compatibility/deployment/7.0/x86-host-path.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/core/compatibility/deployment/7.0/x86-host-path.md b/docs/core/compatibility/deployment/7.0/x86-host-path.md index 84c9385eb43c0..f0d0cdf38554c 100644 --- a/docs/core/compatibility/deployment/7.0/x86-host-path.md +++ b/docs/core/compatibility/deployment/7.0/x86-host-path.md @@ -11,7 +11,7 @@ This change affects .NET Core 3.1, .NET 6, .NET 7, and future versions. ## Previous behavior -The x86 host location was added to `PATH`, even on x64/arm64 systems. Depending on which .NET architecture installer was run first, a user's machine could have either the native (x64/arm64) or x86 host listed first in `PATH`. +The x86 host location was added to `PATH`, even on x64/Arm64 systems. Depending on which .NET architecture installer was run first, a user's machine could have either the native (x64/Arm64) or x86 host listed first in `PATH`. ## New behavior @@ -23,13 +23,13 @@ Going forward, the x86 host location is only added to the `PATH` environment var ## Reason for change -Currently, the x86 host location is added to `PATH`, even on x64/arm64 systems. Depending on which .NET architecture installer is run first, a user's machine could have either the native (x64/arm64) or the x86 host as the first location in the `PATH` list. This ambiguity causes problems with the initial .NET installation and during .NET servicing events. Any of these installation scenarios can modify the order of .NET hosts in `PATH`, making it non-deterministic. There's a high chance of behavior regression of the .NET runtime. +Currently, the x86 host location is added to `PATH`, even on x64/Arm64 systems. Depending on which .NET architecture installer is run first, a user's machine could have either the native (x64/Arm64) or the x86 host as the first location in the `PATH` list. This ambiguity causes problems with the initial .NET installation and during .NET servicing events. Any of these installation scenarios can modify the order of .NET hosts in `PATH`, making it non-deterministic. There's a high chance of behavior regression of the .NET runtime. -This change streamlines the .NET host experience on Windows 64-bit systems. Only 64-bit hosts will be available in the system's `PATH` environment variable: the x64 host on x64 systems and the arm64 host on arm64 systems. We removed the ambiguity in the of order of .NET hosts in `PATH`, and only one host will be present. +This change streamlines the .NET host experience on Windows 64-bit systems. Only 64-bit hosts will be available in the system's `PATH` environment variable: the x64 host on x64 systems and the Arm64 host on Arm64 systems. We removed the ambiguity in the of order of .NET hosts in `PATH`, and only one host will be present. ## Recommended action -If you need the x86 host in the `PATH` environment variable on x64/arm64 systems, add the host location to `PATH` manually. +If you need the x86 host in the `PATH` environment variable on x64/Arm64 systems, add the host location to `PATH` manually. ## Affected APIs From becc6d7173a0dc7c447163a5f01ffe857898bb10 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 27 Jun 2022 15:25:38 -0700 Subject: [PATCH 3/3] clarify dotnet host --- docs/core/compatibility/deployment/7.0/x86-host-path.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/core/compatibility/deployment/7.0/x86-host-path.md b/docs/core/compatibility/deployment/7.0/x86-host-path.md index f0d0cdf38554c..7583270239d7a 100644 --- a/docs/core/compatibility/deployment/7.0/x86-host-path.md +++ b/docs/core/compatibility/deployment/7.0/x86-host-path.md @@ -9,6 +9,8 @@ The x86 versions of .NET installers for Windows have been modified to no longer This change affects .NET Core 3.1, .NET 6, .NET 7, and future versions. +This change only affects the `dotnet` host. It doesn't affect 32-bit/x86 application hosts, like *myapp.exe*. Those hosts will continue to find the x86 runtime correctly (assuming it's installed). + ## Previous behavior The x86 host location was added to `PATH`, even on x64/Arm64 systems. Depending on which .NET architecture installer was run first, a user's machine could have either the native (x64/Arm64) or x86 host listed first in `PATH`. @@ -25,7 +27,7 @@ Going forward, the x86 host location is only added to the `PATH` environment var Currently, the x86 host location is added to `PATH`, even on x64/Arm64 systems. Depending on which .NET architecture installer is run first, a user's machine could have either the native (x64/Arm64) or the x86 host as the first location in the `PATH` list. This ambiguity causes problems with the initial .NET installation and during .NET servicing events. Any of these installation scenarios can modify the order of .NET hosts in `PATH`, making it non-deterministic. There's a high chance of behavior regression of the .NET runtime. -This change streamlines the .NET host experience on Windows 64-bit systems. Only 64-bit hosts will be available in the system's `PATH` environment variable: the x64 host on x64 systems and the Arm64 host on Arm64 systems. We removed the ambiguity in the of order of .NET hosts in `PATH`, and only one host will be present. +This change streamlines the `dotnet` host experience on Windows 64-bit systems. Only 64-bit hosts will be available in the system's `PATH` environment variable: the x64 host on x64 systems and the Arm64 host on Arm64 systems. We removed the ambiguity in the of order of `dotnet` hosts in `PATH`, and only one host will be present. ## Recommended action