RC 2 is the second release out of the two Release Candidates planned by Microsoft. This means that the next time we will be talking about .NET 6, the stable version will be available for the public to download. This release is currently available to use on Linux, Windows, and macOS. Moreover, Microsoft claims that it has been tested with Visual Studio 2022 Preview 5.

.NET 6 Release Date

With the announcement of Release Candidate 2, Microsoft has also announced the release date(s) for the stable version of .NET 6. .NET 6 is scheduled to be released at the .NET Conf – a 3-day event that will be held between 9th and 11th November 2021. Although .NET 6 will be compatible with Visual Studio 2022, it will not be compatible with its predecessors. Similarly, it will be compatible with MS Build 17.x, but not with its predecessors. Since .NET 6 is nearing its final stable build, it has a lot to offer in terms of new features and updates. Let’s see what those are.

What’s new in .NET 6 Release Candidate 2

There are a lot of new features in .NET 6 RC 2. However, we will only be discussing a few significant ones.

C# 10

C# 10 is an advancement in the language, which Microsoft calls the “evolution of existing concepts and capabilities.” Moreover, a few features have also been added such as “global using” and file-scoped namespaces. You can view the examples of the reiterated C# 10 here.

Record Structs

Record structs have been added for completeness so that structs can enjoy the same record benefits as classes, thanks to C# 10. Microsoft has aligned struct records with ValueTuple the same as the class records. This has made the record struct properties mutable by default, while the record class properties are immutable. Microsoft says that the asymmetric mutability behavior between record structs and record classes will likely be met with surprise and maybe even distaste with some readers, depending upon their preferences. If you prefer immutable behavior with record structs, you can have it by adding a readonly keyword.

Global usings

You can use Global using it to specify a namespace that you would like available in all of your source files as if it was declared in each one. It can also be used with using static and aliasing. This feature enables a common set of using declarations to be available, and by extension, for many using lines to no longer be needed. This is most relevant for the platform namespaces, but can be used for any namespace. Here are a few examples:

global using System;global using static System.Console;global using E = System.Environment;

File-scoped namespace declaration

The file-scoped namespace declarations is another C# 10 feature that is used to reduce indentation and line count. As opposed to the three-line structure, you can now use namespace as a single file. Namespaces are not compatible with top-level statements. Top-level statements exist within the top-level namespace. This also means that if you add additional methods to the Program class, using the partial class syntax that the partial Program class needs to also be in the top-level namespace.

MacOS and Windows Arm64 Update

Microsoft s also working to add macOS and Windows Arm64 support. However, they are not finished with it yet. The following capabilities have been added thus far:

.NET 6 RC2 enables Arm64 + x64 co-existence by installing Arm64 and x64 builds to different locations. Until now, Arm64 and x64 builds overwrite each other, which led to general sadness.You need to uninstall all .NET builds and start from scratch (on macOS and Windows Arm64 machines) to adopt .NET 6 RC2+. This includes Arm64 and x64, .NET 6 and pre-.NET 6.Pre .NET 6 builds are not yet ready to install.The CLI enables you to use the Arm64 SDK to do Arm64 AND x64 development (assuming you have the required Arm64 and x64 runtimes installed). The same is true in reverse.We want people to just use the Arm64 SDK since it will be a better experience (native architecture performance; one SDK to maintain). We will continue to improve the product to make this model the easy choice for most developers.For the SDK, we will only support .NET 6+ on Arm64. Earlier SDK builds will be blocked on Arm64.For runtimes, we will support all in-support versions, Arm64 and x64..NET 6 RC2 delivers the bulk of the final .NET 6 experience for Arm64 (including x64 emulation).We hope to update .NET Core 3.1 and .NET 5 runtimes to align with .NET 6 RTM (both in time and with the technical requirements). That’s still TBD.RC2 nightly builds are currently broken, so you will need to wait a couple more weeks until we ship RC2 to try this all out.

You can read more about the new features and improvements in Release Candidate 2 on Microsoft’s announcement page.

Download .NET 6 Release Candidate 2

Use the direct download links below to download the .NET 6 Release Candidate 2 Runtime and SDKs according to your operating system and architecture:

Runtime:

Download .NET 6.0.0-rc.2 Desktop Runtime for Windows x64 Download .NET 6.0.0-rc.2 Desktop Runtime for Windows x86 Download .NET 6.0.0-rc.2 Desktop Runtime for Windows ARM64 Download .NET 6.0.0-rc.2 Runtime for macOS x64 Download .NET 6.0.0-rc.2 Runtime for macOS ARM64 Download .NET 6.0.0-rc.2 Runtime Binaries for Linux Arm32 Download .NET 6.0.0-rc.2 Runtime Binaries for Linux Arm64 Download .NET 6.0.0-rc.2 Runtime Binaries for Linux Arm32 Alpine Download .NET 6.0.0-rc.2 Runtime Binaries for Linux Arm64 Alpine Download .NET 6.0.0-rc.2 Runtime Binaries for Linux x64 Download .NET 6.0.0-rc.2 Runtime Binaries for Linux x64 Alpine

SDKs

Download .NET SDK 6.0.100-rc.2 for Windows x64 Download .NET SDK 6.0.100-rc.2 for Windows x86 Download .NET SDK 6.0.100-rc.2 for Windows ARM64 Download .NET SDK 6.0.100-rc.2 for macOS x64 Download .NET SDK 6.0.100-rc.2 for macOS ARM64 Download .NET SDK 6.0.100-rc.2 Binaries for Linux Arm32 Download .NET SDK 6.0.100-rc.2 Binaries for Linux Arm64 Download .NET SDK 6.0.100-rc.2 Binaries for Linux Arm32 Alpine Download .NET SDK 6.0.100-rc.2 Binaries for Linux Arm64 Alpine Download .NET SDK 6.0.100-rc.2 Binaries for Linux x64 Download .NET SDK 6.0.100-rc.2 Binaries for Linux x64 Alpine More download and install options here.

ASP.NET Core

Download ASP.NET Core Runtime 6.0.0-rc.2 Hosting Bundle for Windows Download ASP.NET Core Runtime 6.0.0-rc.2 for Windows x64 Download ASP.NET Core Runtime 6.0.0-rc.2 for Windows x86 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Windows ARM64 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for macOS x64 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for macOS ARM64 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux Arm32 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux Arm64 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux Arm32 Alpine Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux Arm64 Alpine Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux x64 Download ASP.NET Core Runtime 6.0.0-rc.2 Binaries for Linux x64 Alpine

Install .NET 6 Release Candidate 2

You can begin by downloading the right .NET version for you from the links above and then execute it to begin the installation process. Once you have installed it, all your applications will run using the new build as the previous version will be replaced. You have now installed the .NET. You may check which .NET version is running by typing in the following command in Command Prompt:

Closing words

Since this is a Release Candidate we suggest that you do not install .NET 6 RC 2 in a production environment, as it may still have a few bugs. Meanwhile, you can try it out in a test environment to check out the cool new features and support. Also see:

Download and Install .NET 6 Release Candidate 1 (Offline Installers)Download and Install .NET 6 LTS (Offline Installer)Download .NET 6.0.10 (Offline Installers)Download and Install .NET 6.0.6 LTS (Offline Installer)Download .NET 6.0.11 (Offline Installers)