Skip to content

Commit 548e353

Browse files
Merge pull request #13443 from gregg-miskelly/arm32
Add Windows ARM32 .NET doc
2 parents da06009 + fb87092 commit 548e353

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: "Adapt to removal of Windows Arm32 .NET debugging"
3+
description: Provides guidance on how to adapt to the removal of Windows Arm32 .NET Debugging support
4+
ms.date: "12/12/2024"
5+
ms.topic: "error-reference"
6+
dev_langs:
7+
- "CSharp"
8+
- "VB"
9+
- "FSharp"
10+
author: "mikejo5000"
11+
ms.author: "mikejo"
12+
manager: mijacobs
13+
ms.subservice: debug-diagnostics
14+
---
15+
16+
# Adapt to removal of Windows Arm32 .NET debugging
17+
18+
.NET support for Windows on Arm32 has ended. Debugging support for this platform will be removed from Visual Studio 2022 starting with the 17.14 update. This article lists potential options for customers currently debugging .NET Code on Windows Arm32.
19+
20+
21+
## Option 1: Run code in an Arm64 process
22+
23+
If your device runs Arm64 Windows or can be upgraded to it, the easiest way is to migrate the debugged process from Arm32 to Arm64. How to manage the switch to Arm64 depends on the type of project you're using:
24+
25+
* For Universal Windows Platform (UWP) apps, see [Update app architecture from Arm32 to Arm64](/windows/arm/arm32-to-arm64).
26+
* For processes that have their own native executable that's self-hosting the .NET Runtime, the native project needs to be configured to target Arm64.
27+
* If the executable project is a .NET project, then something is likely specifying the `RuntimeIdentifier` MSBuild property. `RuntimeIdentifier` should be updated to target `win-arm64` instead of `win-arm` (or similar runtime IDs).
28+
29+
30+
## Option 2: Use an older version of Visual Studio
31+
32+
Visual Studio 17.12 can be used from the Long-Term Servicing Channel (LTSC). For more information, see [Visual Studio Product Lifecycle and Servicing](/visualstudio/productinfo/vs-servicing).
33+
34+
35+
## Option 3: Start without debugging
36+
37+
If you have a project that you still want to run but doesn't require debugging, use **Debug->Start without debugging** to run the project. Since the debugger isn't available, you would need to diagnose any problems by using logging.
38+
39+
> [!NOTE]
40+
> This option is not recommended since .NET support for Windows on Arm32 has ended.
41+
42+
43+
## Option 4: Target Linux
44+
45+
The .NET Runtime continues to support Arm32 Linux. For IoT hardware that isn't capable of running Arm64 Windows but is capable of running Arm32 Linux, the only supported path for running .NET Code on that hardware would be to switch to Linux.

docs/debugger/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,8 @@
294294
href: error-unable-to-connect-to-the-machine-name-the-machine-cannot-be-found-on-the-network.md
295295
- name: Remote machine does not appear in a Remote Connections dialog
296296
href: error-remote-machine-does-not-appear-in-a-remote-connections-dialog.md
297+
- name: Adapt to removal of Windows Arm32 .NET debugging
298+
href: adapt-to-removal-of-windows-arm32-dotnet-debugging.md
297299
- name: Attach to process
298300
items:
299301
- name: Attach to running processes with the debugger

0 commit comments

Comments
 (0)