Microsoft has just released .NET 6 Preview 3 two days after releasing the stable .NET 5.0.5. Microsoft calls this version a preview since it’s still in the testing phase and expects its subscribers to send them feedback so that they can improve the process before publishing a stable release.
There is a good chance you are using .NET Framework 4.8 if you are running Windows 10 Version 1809 or higher. Manual upgrade to .NET 6 Preview 3 is available using the download links provided below. We do not recommend upgrading devices that are currently running in a production/live environment, as this release still has a few bugs.
Let us see what this new release has to offer.
New features and improvements in .NET 6 Preview 3
This release primarily focuses on minor improvements and enhancements to .NET 6. Although these minor touchups significantly impact the overall performance for developers, many may not fully appreciate these changes.
This release is dedicated almost entirely to low-level performance features. These are the types of improvements that many folks don’t necessarily always fully appreciate, but they help a lot for many apps.Microsoft Blog
The majority of the updates affect Common Language Runtime (CLR) systems directly, making the experience either faster or more compatible with modern-day CPUs.
This release also includes several bug fixes for ASP .NET Core, which has been discussed by Microsoft in a separate blog post.
Let us now focus on the key changes in this preview release.
Faster struct updating
Microsoft has added a new unsafe API called “CollectionsMarshal.GetValueRef” that enables users to update their struct values in the Dictionaries must be faster than before. However, Microsoft says that this API is intended for scenarios where fast performance is required, and not for general purpose use.
To learn more about this API and a sample, refer to the official post by Microsoft.
Faster interface checking and casting
Microsoft has successfully increased the speed of interface casting by 16 to 38 percent. This was achieved by having fewer arguments in a few addressing modes, and greater CPU port availability for parallel instructions.
Moving some parts of the .NET Runtime from C++ to C# is that it enables more developers to contribute to the feedback since more of them are literate to C# when compared to C++.
.NET Hot Reload is now available for web applications
The .NET Hot Reload enables developers to apply changes to their code while running the app without having to restart it. This feature was previously available for offline apps and is now also available for web apps using dotnet watch.
Microsoft plans to support .NET 6 for the next 3 years after it was released in November 2021. This is part of the Long Term Support (LTS) release.
Read in-depth about what new things .NET 6 Preview 3 brings, visit their announcement page.
- You may encounter the following error message when trying to publish a WPF project in Visual Studio with a specified target runtime:
“Assets file ‘c:\git\repro\WPFSelfContained\obj\project.assets.json’ doesn’t have a target for ‘net5.0-windows/win-x64’. Ensure that restore has run and that you have included ‘net5.0-windows’ in the TargetFrameworks for your project. You may also need to include ‘win-x64’ in your project’s RuntimeIdentifiers.”
- You may encounter an error message such as the following when building a project that redirects the intermediate paths to a folder using the “MSBuildProjectName”:
“error NETSDK1004: Assets file ‘c:\git\repro\wpf\artifacts\obj\wpf_gzmmtwnk_wpftmp\project.assets.json’ not found. Run a NuGet package restore to generate this file.”
Microsoft proposes that you set the “IncludePackageReferencesDuringMarkupCompilation” to False in the following project file:
There is an issue with the “ReadyToRun” feature in .NET 6 Preview 3. A workaround for this is by setting the “COMPlus_ReadyToRun” variable to 0.
To read more into the actual issue, refer to this feedback submission.
The “PropertyGrid” values are rendered at incorrect locations.
Since .NET 6 Preview 1, an issue with Blazor WebAssembly apps using the IIS Express server during development has been observed in Visual Studio. Microsoft suggests that users use Kestrel during development until the issue is resolved.
Supported Operating Systems/Requirements
.NET 6 can’t be installed on all Windows Operating Systems but only a handful of Windows 10 versions are supported. This is because it is only compatible with Visual Studio 2019 16.8 Preview 4 and above. Since the mentioned Visual Studio 2019 is only compatible with the following Operating Systems, the .NET 6 Preview 3 also only supports the following variants of Windows and Server:
- Windows 10 version 1703 or higher. Editions: Home, Professional, Education, and Enterprise (LTSC and S are not supported)
- Windows Server 2019. Editions: Standard and Datacenter
- Windows Server 2016. Editions: Standard and Datacenter
- Windows 8.1 (with Update KB2919355). Editions: Core, Professional, and Enterprise
- Windows Server 2012 R2 (with Update KB2919355). Editions: Essentials, Standard, Datacenter
- Windows 7 SP1 (with latest Windows Updates) Editions: Home Premium, Professional, Enterprise, Ultimate
There are also MSI packages available for the following systems – x86, x64, ARM64, macOS, and Linux. Microsoft is yet to release .NET 8 Debian containers based on Debian 11, as they are still in the testing phase.
Download .NET 6 Preview 3
Use the direct download links below to download the .NET 6 Preview 3 Runtime and SDKs, according to your operating system and bit architecture:
More download and install options here.
If you want to download ASP.NET Core Runtime 6 Preview 3, use the links below:
Installing .NET 6 Preview 3
Once you have downloaded the installation package, you can proceed with the installation process. Installing .NET 6 Preview 3 is very straightforward. Simply download the .exe file through the links provided above and execute it for the installation process.
Once you have installed it, all your applications will run using the new build as the previous version will be replaced.
- Run the installation package by double-clicking it (in the case of macOS and Windows), and then clicking Install on the installation wizard.
- The installation will now begin. It does not take much time nor does it require a restart. Click Close once it has been installed successfully.
You have now installed the .NET 6 Preview 3 successfully. You may check which .NET version is running by typing in the following command in Command Prompt:
wmic product get description | findstr /C:.NET
Please ensure you have updated to the latest version of .NET if you plan to use it to develop applications and test the new framework. Even so, since it is a beta product, we do not recommend installing it on your production/live server, preferring rather to use a test machine or a virtual machine instead.